json对象、json格式字符串、java对象【使用此net.sf.json.JSONObject将java对象[比如数组集合Map、Map扩展]转换成json格式字符串】

来源:互联网 发布:茶叶销售量数据 编辑:程序博客网 时间:2024/04/29 18:57

文章一:

java代码中使用json需要导入的jar包_Json

http://greenboy1.iteye.com/blog/1046125[里面有不导入7个包会发生的错误]

文章二:

json-lib.....jar包jsonObject介绍

http://blog.csdn.net/xingtianyiyun/article/details/7604629【里面有比较net.sf.json.JSONObject和 com.google.gson.Gson的区别以及如何将java对象如对象、数组和集合、Map、Map扩展转换成json格式字字符串

===================================================================================================================

小结:

import com.google.gson.Gson;【要把java对象转换成json格式字符串,推荐使用这个,比较方便,而且只需要一个jar包】
Gson gson = new Gson();  
System.out.println(gson.toJson(person));


import net.sf.json.JSONObject;这个可以依据key从json对象中获取value【这个需要7个jar包】------------这个功能更强大一些
JSONObject jobj=JSONObject.fromObject(result.toString());
String urlStr=JSONObject.fromObject(jobj.get("result").toString()).get("url").toString();
===================================================================================================================




1.用json-lib生成json

要用到的jar包:commons-beanutils-1.8.3.jar, commons-collections-3.2.1.jar, commons-lang-2.4.jar, commons-logging-1.1.1.jar, ezmorph-1.0.6.jar, json-lib-2.3-jdk15.jar

Java代码  收藏代码
  1. //1.对象  
  2. package com.hx.test;  
  3.   
  4. import com.hx.entity.Person;  
  5.   
  6. import net.sf.json.JSONObject;  
  7.   
  8. public class JsonTest {  
  9.   
  10.     public static void main(String[] args) {  
  11.           
  12.         Person person = new Person();  
  13.         person.setName("tom");  
  14.         person.setAddress("UK");  
  15.         person.setAge(14);  
  16.         JSONObject json = JSONObject.fromObject(person);  
  17.         System.out.println(json.toString());  
  18.     }  
  19. }  
  20. //输出结果为:  
  21. //{"address":"UK","age":14,"name":"tom"}  
  22.   
  23. //2.数组和集合  
  24. package com.hx.test;  
  25.   
  26. import java.util.ArrayList;  
  27. import java.util.List;  
  28.   
  29. import net.sf.json.JSONArray;  
  30.   
  31. public class JsonTest {  
  32.   
  33.     public static void main(String[] args) {  
  34.           
  35.         List<String> fruit = new ArrayList<String>();  
  36.           
  37.         fruit.add("apple");  
  38.         fruit.add("pear");  
  39.         fruit.add("orange");  
  40.         fruit.add("banana");  
  41.           
  42.         JSONArray fruits = JSONArray.fromObject(fruit);  
  43.           
  44.         System.out.println(fruits.toString());  
  45.     }  
  46. }  
  47. //输出结果:  
  48. //["apple","pear","orange","banana"]  
  49.   
  50. //2)Map集合  
  51. //Map集合比较特殊,因为 key-value键值对的对应方式,所以咱们应当用JSONObject来生成json。  
  52. package com.hx.test;  
  53.   
  54. import java.util.HashMap;  
  55. import java.util.Map;  
  56.   
  57. import net.sf.json.JSONObject;  
  58.   
  59. public class JsonTest {  
  60.   
  61.     public static void main(String[] args) {  
  62.           
  63.         Map<String, String> map = new HashMap<String, String>();  
  64.           
  65.         map.put("001""apple");  
  66.         map.put("002""pear");  
  67.         map.put("003""orange");  
  68.         map.put("004""banana");  
  69.           
  70.         JSONObject json = JSONObject.fromObject(map);  
  71.           
  72.         System.out.println(json.toString());  
  73.     }  
  74. }  
  75. //输出结果:  
  76. //{"004":"banana","001":"apple","002":"pear","003":"orange"}  
  77.   
  78. //3) Map集合扩展  
  79. package com.hx.test;  
  80.   
  81. import java.util.ArrayList;  
  82. import java.util.HashMap;  
  83. import java.util.List;  
  84. import java.util.Map;  
  85.   
  86. import net.sf.json.JSONObject;  
  87.   
  88. public class JsonTest {  
  89.   
  90.     public static void main(String[] args) {  
  91.           
  92.         Map<String, List<String>> map = new HashMap<String, List<String>>();  
  93.           
  94.         List<String> strList1 = new ArrayList<String>();  
  95.           
  96.         strList1.add("aa");  
  97.         strList1.add("bb");  
  98.         strList1.add("cc");  
  99.           
  100.           
  101.         List<String> strList2 = new ArrayList<String>();  
  102.           
  103.         strList2.add("dd");  
  104.         strList2.add("ee");  
  105.         strList2.add("ff");  
  106.           
  107.           
  108.         List<String> strList3 = new ArrayList<String>();  
  109.           
  110.         strList3.add("gg");  
  111.         strList3.add("hh");  
  112.         strList3.add("ii");  
  113.   
  114.           
  115.         map.put("001", strList1);  
  116.         map.put("002", strList2);  
  117.         map.put("003", strList3);  
  118.           
  119.         JSONObject json = JSONObject.fromObject(map);  
  120.           
  121.         System.out.println(json.toString());  
  122.     }  
  123. }  
  124. //输出结果:  
  125. //{"001":["aa","bb","cc"],"002":["dd","ee","ff"],"003":["gg","hh","ii"]}  
  126.   
  127.   
  128. /* 
  129.   和json-lib相比,Gson操作就相当的更简单了 
  130.   不管是对象还是数组,还是上面较复杂的map集合, 
  131.   操作都是一样的,Gson是出自google,应为比较小巧,所以其自己系统android上面用的也      是这个。 
  132. */  
  133.   
  134. //因为操作都一样,所以在这里只给大家演示一种情况。  
  135. //别忘了导jar包:[i]gson-2.1.jar[/i]  
  136. package com.hx.test;  
  137.   
  138. import com.google.gson.Gson;  
  139. import com.hx.entity.Person;  
  140.   
  141. public class GsonTest {  
  142.   
  143.     public static void main(String[] args) {  
  144.           
  145.         Person person = new Person();  
  146.           
  147.         person.setAddress("UK");  
  148.         person.setAge(14);  
  149.         person.setName("tom");  
  150.           
  151.         Gson gson = new Gson();  
  152.           
  153.         System.out.println(gson.toJson(person));  
  154.     }  
  155. }  
  156. //输出结果:  
  157. //{"name":"tom","age":14,"address":"UK"} 

========================================================================================================================

json-lib-2.3-jdk15.jar 
commons-beanutils-1.7.0.jar 
commons-httpclient-3.1.jar 
commons-lang-2.3.jar 
commons-logging-1.0.4.jar 
commons-collections-3.1.jar 
ezmorph-1.0.3.jar 
这些包可以从一下地方下载: 
http://commons.apache.org/index.html 
http://json-lib.sourceforge.net/ 
http://ezmorph.sourceforge.net/ 
http://www.docjar.com/ 
如果不关联这些包,则会出现以下错误: 
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher 
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap 
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean 
java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException 
java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException 
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 






0 0
原创粉丝点击