net.sf.json.JSONObject与JSONArray的应用

标签: JSONObject JSONArray
3人阅读 评论(0) 收藏 举报

1,net.sf.json.JSONObject

JSONObject是一个无序的键值对集合。值可以是任意类型:Boolean,JSONArray,JSONObject,Number,String,or the JSONObject.NULL Object

2,net.sf.json.JSONArray

JSONArray是一个有序的值序列。值可以是任意类型:Boolean, JSONArray, JSONObject, Number, String, or the JSONNull object。

形如:[ "locality", "political" ]

 

JSONObject添加成员的方法element()与put()的区别:

put添加新成员:key是Object对象,value是Object对象

element添加新成员:key是String对象,value是JSONObject对象

 

实例:

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JsonObjectArrayTest {

    public static void main(String[] args) {
        // 1.从字符串转换成JSONArray对象,必须首尾为[,]; 工具代码会判断是否含有'['和']'
        String types1 = "[\"locality\",\"political\"]";
        JSONArray jsonArray1 = JSONArray.fromObject(types1);
        System.out.println(jsonArray1.toString());

        // 2.从一个JSONArray转换成另一个JSONArray对象
        JSONArray jsonArray2 = JSONArray.fromObject(jsonArray1);
        System.out.println(jsonArray2.toString());

        // 3.将Collection对象, 本例为ArrayList转换成JSONArray对象
        List<String> types3 = new ArrayList<String>();
        types3.add("locality");
        types3.add("political");
        JSONArray jsonArray3 = JSONArray.fromObject(types3);
        System.out.println(jsonArray3.toString());

        // 4. new 一个JSONObject对象,使用put方法添加成员,如果已经存在key, 则替换value值
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("types", jsonArray3);
        System.out.println(jsonObject1.toString());

        // 5.将一个JSONObject对象转换成另一个JSONObject对象
        JSONObject jsonObject2 = JSONObject.fromObject(jsonObject1);
        System.out.println(jsonObject2);

        // 6.将一Map对象转换成JSONObject对象
        Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();
        List<String> list = new ArrayList<String>();
        list.add("locality");
        list.add("political");
        map.put("types", list);
        JSONObject jsonObject3 = JSONObject.fromObject(map);
        System.out.println(jsonObject3);

        // 7.将String转换成JSONObject对象
        String str1 = "{\"types\":[\"locality\",\"political\"]}";
        JSONObject jsonObject4 = JSONObject.fromObject(str1);
        System.out.println(jsonObject4);

        // 8.累积value到这个key下,这个key下value变成JSONArray, 如果value本身就是JSONArray,直接添加到里面
        JSONObject jsonObject5 = jsonObject4.accumulate("place_id", "ChIJuSwU55ZS8DURiqkPryBWYrk");
        System.out.println(jsonObject5.toString());
        JSONObject jsonObject6 = jsonObject5.accumulate("place_id", "accumulate");
        System.out.println(jsonObject5.toString());
        System.out.println(jsonObject6);
        // 9.element将键值对放到JSONObject中, 如果key存在,则替换原来的value; 
        // element与put的区别: 1.put返回的Object对象; element返回的是JSONObject对象
        // 2.put的key为Object对象,element的key为String
        JSONObject jsonObject7 = jsonObject6.element("types", 1);
        System.out.println(jsonObject7.toString());

        // 10.使用get方法,获取成员
        System.out.println(jsonObject7.getInt("types"));
        System.out.println(jsonObject7.getJSONArray("place_id")); 
        System.out.println(jsonObject7.getJSONArray("place_id").get(1));


    }

}

输出:

["locality","political"]
["locality","political"]
["locality","political"]
{"types":["locality","political"]}
{"types":["locality","political"]}
{"types":["locality","political"]}
{"types":["locality","political"]}
{"types":["locality","political"],"place_id":"ChIJuSwU55ZS8DURiqkPryBWYrk"}
{"types":["locality","political"],"place_id":["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"]}
{"types":["locality","political"],"place_id":["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"]}
{"types":1,"place_id":["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"]}
1
["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"]
accumulate
查看评论

Spark应用实战

-
  • 1970年01月01日 08:00

关于使用JSONArray.fromObject()方法和引入net.sf.json包所需要的jar包支持

关于使用JSONArray.fromObject()方法和引入net.sf.json包所需要的jar包支持。 net.sf.json的下载地址 最新版本:http://sourceforge.ne...
  • y562363753
  • y562363753
  • 2017-08-05 10:11:17
  • 10819

java.lang.ClassNotFoundException: net.sf.json.JSONArray错误

已经在build path中添加过json-lib-2.1-jdk15.jar,ezmorph-1.0.6.jar依然不行 原因是由于试用开发环境的Build Path导入JSON需要用的Jar,发现...
  • walt18
  • walt18
  • 2014-03-16 17:48:38
  • 3453

JSONArray转java实体集合提示MorphDynaBean

在将jsonArray转java集合使用的toCollection方法即可。 JSONArray.toCollection(jsonArray, clazz); 但当实体中嵌套实体或者ma...
  • u013109978
  • u013109978
  • 2017-06-29 17:52:04
  • 149

net.sf.json 将Json数组直接转换成List对象

问题描述:将json数组不能直接转换成list这种形式,只能转换成list,这个给我们编程带来一些问题,又要多种一次转换.为了解决这个问题,我们通过Java的反射机制解决了这一问题. 1.首先定义一...
  • xfks55
  • xfks55
  • 2017-03-10 14:24:51
  • 2258

java.lang.NoClassDefFoundError: net/sf/json/JSONObject

1、问题描述 在web工程中
  • SoulHao
  • SoulHao
  • 2014-07-10 01:16:03
  • 4800

对象序列化(java.io.NotSerializableException: org.json.JSONArray)

java.io.NotSerializableException: org.json.JSONArray
  • fangjingjingll
  • fangjingjingll
  • 2016-01-04 16:45:57
  • 2321

json解析jar包

  • 2017年12月06日 13:29
  • 1.26MB
  • 下载

net.sf.json.JSONException: Object is null

出现这个错误的原因是JSONObject转换时,对象内包含另一个对象,而该被包含的对象为NULL,所以抛出异常。但还有一种极为坑爹的情况:用system.out.println都可以输出结果了,但在最...
  • fjnpysh
  • fjnpysh
  • 2017-06-29 16:20:24
  • 963

使用net.sf.json包生成一个pojo的json数据出现的问题

今天在使用一个net.sf.json这个包中的类来生成一个pojo的json数据,总是出现一个net.sf.json.JSONException: java.lang.ClassCastExcepti...
  • jimmee
  • jimmee
  • 2009-03-14 20:35:00
  • 5531
    个人资料
    持之以恒
    等级:
    访问量: 3万+
    积分: 964
    排名: 5万+
    文章分类
    最新评论