JSONObject和JSONArray对象的创建方法

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对象

Java代码
  1. JSONObjectjObject=newJSONObject();
  2. /*
  3. *json对象添加数据的三种方式
  4. *--|publicObjectput(Object,key,Objectvalue)
  5. *--|publicJSONObjectaccumulate(Stringkey,0); padding:0px; margin:0px; width:auto; border:0px">*--|publicJSONObjectelement(Stringkey,0); padding:0px; margin:0px; width:auto; border:0px">*/
  6. //通过element往jObject对象中添加数据,如果key为Null,将会移除当前key
  7. jObject.element("name","zhangsan");
  8. jObject.element("sex","girl");
  9. jObject.element("age",16);
  10. //关联一个key得到与之对应的value值
  11. System.out.println(jObject.get("name"));
  12. System.out.println(jObject.getInt("age"));
  13. //如果key为null,则返回值为null,并不会抛异常
  14. System.out.println(jObject.get("work"));
  15. JSONObjectjsonObject=newJSONObject()
  16. .element("string","JSON")
  17. .element("integer","1")
  18. .element("double","2.0")
  19. .element("boolean","true");

2.静态方法fromObject()的调用,使用格式化json字符串来创建jsonobject对象

StringjsonStr="{\"age\":12,\"name\":\"wangwu\"}";
  • JSONObjectjsonOb=JSONObject.fromObject(jsonStr);
  • System.out.println(jsonOb.toString());
  • Stringjsonstr1="{\"age\":17,\"integer\":1,\"boolean\":true,\"double\":2.0}";
  • JSONObjectjson=(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"));
  • "2.0")
  • 3.使用一个map来创建JSONObject对象

    Map<String,Object>map=newHashMap<String,Object>();

  • map.put("age",0)">12);
  • map.put("boolean",true);
  • map.put("double",0)">2.0);
  • map.put("integer",85); font-weight:bold">null);
  • JSONObjectjson2=(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对象


    <spanstyle="font-size:medium;">MyBeanmybean=newMyBean();
  • mybean.setBoole( mybean.setDouble( mybean.setInteger(1);
  • mybean.setString("zhangsan");
  • JSONObjectjsonobje=(JSONObject)JSONSerializer.toJSON(mybean);
  • System.out.println(jsonobje.getString("string"));</span>
  • 3.JSONArray对象的创建

    <spanstyle="font-size:medium;">packagecn.spring.jsonobject;
  • importjava.util.ArrayList;
  • importjava.util.List;
  • importnet.sf.json.JSONArray;
  • importnet.sf.json.JSONObject;
  • importnet.sf.json.JSONSerializer;
  • /**
  • *创建JSONArray
  • *@authorAdministrator
  • *
  • publicclassJSONArrarys{
  • staticvoidmain(String[]args){
  • *检查调用正确的JSONArray工厂方法的对象类型。
  • *接受JSON格式字符串、数组、集合和枚举。
  • //1,创建一个JSONArray
  • JSONObjectjSObject=(JSONObject)JSONSerializer.toJSON("{\"name\":\"zhangsan\",\"age\":\"12\"}");
  • JSONArrayjsonarray=newJSONArray().element("json")
  • .element("1")
  • .element("2.0")
  • .element("true")
  • .element(jSObject);//JSONArray对象中添加JSONObject对象
  • Object[]array=jsonarray.toArray();
  • for(inti=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
  • Stringjarray="['json','1','2.0','true',{'name':'zhangsan','age':'12'}]";
  • JSONArrayjsonArray=JSONArray.fromObject(jarray);
  • System.out.println(jsonArray.get(4));
  • //3.使用一个collection集合创建JSONArray
  • List<Object>list=newArrayList<Object>();
  • list.add("json");
  • list.add("1");
  • list.add(jSObject);
  • JSONArrayjsonArray2=JSONArray.fromObject(list);
  • System.out.println(jsonArray2.toString());
  • System.out.println(jsonArray2.get(2));
  • //使用一个Array数组来创建JSONArray
  • Object[]arr=newObject[]{"json","1",jSObject};
  • JSONArrayjsonArray3=JSONArray.fromObject(arr);
  • System.out.println(jsonArray3.toString());
  • System.out.println(jsonArray3.get( </span>

  • 【原文:http://724073277.iteye.com/blog/1489935】

    相关文章

      jsonp需要在页面中添加一个<script>元素,由该元素来从其他服务器加载json数据。 <body&g...
    <script> var testApi = "地址"; $.ajax({ url:testApi,//可以不是本地域名 type:‘post...
    总是有人会遇到跨域问题,然后有个jsonp的解决方案,MVC中代码如下: public class JsonpResult : Syst...
    最近开发中遇到调用第三方web_api的功能,后端在处理json数据时使用fastjson来做反序列化,由于调用api...
    JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。jsoncpp...
    JsonSerializer有多个属性,用于自定义如何序列化JSON。这些也可以通过JsonSerializerSettings参数,在...