1.json-lib-2.4-jdk15及其依赖jar包
,需要注意的是所依赖jar包之间的兼容性,仅仅是导入json-lib是不够的
,包括commons-logging-1.1.1.jar日志包,xom
(XOM ™ 是一种新的 XML 对象模型。 它是一个开源 (LGPL),用于处理 XML 和 Java 力求正确性、 简单化和性能,在这基于树的 API)等
2.JSONOBject对象的创建,基于JSONobject的静态方法fromObject进行创建
1.通过JSONObject()构造函数创建JSON对象
- JSONObject jObject = new JSONObject();
- /*
- * json对象添加数据的三种方式
- * --|public Object put(Object,key,Object value)
- * --|public JSONObject accumulate (String key, Object value)
- * --|public JSONObject element (String key, Object value)
- */
- //通过element往jObject对象中添加数据,如果key为Null,将会移除当前key
- jObject.element("name", "zhangsan");
- jObject.element("sex", "girl");
- jObject.element("age", 16);
- //关联一个key得到与之对应的value值
- System.out.println(jObject.get("name"));
- System.out.println(jObject.getInt("age"));
- //如果key为null,则返回值为null,并不会抛异常
- System.out.println(jObject.get("work"));
- JSONObject jsonObject = new JSONObject()
- .element("string", "JSON")
- .element("integer", "1")
- .element("double", "2.0")
- .element("boolean", "true");
2.静态方法fromObject()的调用,使用格式化json字符串来创建jsonobject对象
- String jsonStr = "{\"age\":12,\"name\":\"wangwu\"}";
- JSONObject jsonOb = JSONObject.fromObject(jsonStr);
- System.out.println(jsonOb.toString());
- String jsonstr1 = "{\"age\":17,\"integer\":1,\"boolean\":true,\"double\":2.0}";
- JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonstr1);
- System.out.println(json.getInt("integer"));
- System.out.println(json.getDouble("double"));
- System.out.println(json.getString("age"));
- System.out.println(json.getBoolean("boolean"));
- bject.getInt("age"));
- //如果key为null,则返回值为null,并不会抛异常
- System.out.println(jObject.get("work"));
- JSONObject jsonObject = new JSONObject()
- .element("string", "JSON")
- .element("integer", "1")
- .element("double", "2.0")
3.使用一个map来创建JSONObject对象
- Map<String,Object> map = new HashMap<String, Object>();
- map.put("age", 12);
- map.put("boolean", true);
- map.put("double",2.0);
- map.put("integer", null);
- JSONObject json2 = (JSONObject) JSONSerializer.toJSON(map);
- System.out.println(json2.getDouble("double"));
- System.out.println(json2.getBoolean("boolean"));
- //JSONNULL对象,如果元素的值为null,此情况下null不再是java中的null,而返回一个JSONNULL对象
- System.out.println(JSONNull.getInstance().equals(json2.get("integer"))); //true
4.使用一个javabean来创建JSONObject对象
- <span style="font-size: medium;"> MyBean mybean = new MyBean();
- mybean.setBoole(true);
- mybean.setDouble(2.0);
- mybean.setInteger(1);
- mybean.setString("zhangsan");
- JSONObject jsonobje = (JSONObject) JSONSerializer.toJSON(mybean);
- System.out.println(jsonobje.getString("string"));</span>
3.JSONArray对象的创建
- <span style="font-size: medium;">package cn.spring.jsonobject;
- import java.util.ArrayList;
- import java.util.List;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import net.sf.json.JSONSerializer;
- /**
- * 创建JSONArray
- * @author Administrator
- *
- */
- public class JSONArrarys {
- public static void main(String[] args) {
- /*
- * 检查调用正确的 JSONArray 工厂方法的对象类型。
- * 接受 JSON 格式字符串、 数组、 集合和枚举。
- */
- //1,创建一个JSONArray
- JSONObject jSObject = (JSONObject) JSONSerializer.toJSON("{\"name\":\"zhangsan\",\"age\":\"12\"}");
- JSONArray jsonarray = new JSONArray().element("json")
- .element("1")
- .element("2.0")
- .element("true")
- .element(jSObject); //JSONArray对象中添加JSONObject对象
- Object[] array = jsonarray.toArray();
- for(int i=0;i<array.length;i++){
- System.out.println(array[i]);
- }
- System.out.println(jsonarray.toString()); //["json","1","2.0","true",{"name":"zhangsan","age":"12"}]
- System.out.println("---------------------------");
- //2.使用一个格式化json字符串创建JSONArray
- String jarray = "['json','1','2.0','true',{'name':'zhangsan','age':'12'}]";
- JSONArray jsonArray = JSONArray.fromObject(jarray);
- System.out.println(jsonArray.get(4));
- System.out.println("---------------------------");
- //3.使用一个collection集合创建JSONArray
- List<Object> list = new ArrayList<Object>();
- list.add("json");
- list.add("1");
- list.add(jSObject);
- JSONArray jsonArray2 = JSONArray.fromObject(list);
- System.out.println(jsonArray2.toString());
- System.out.println(jsonArray2.get(2));
- System.out.println("---------------------------");
- //使用一个Array数组来创建JSONArray
- Object[] arr = new Object[]{"json","1",jSObject};
- JSONArray jsonArray3 = JSONArray.fromObject(arr);
- System.out.println(jsonArray3.toString());
- System.out.println(jsonArray3.get(2));
- }
- }
- </span>
【原文:http://724073277.iteye.com/blog/1489935】