JSONObject和JSONArray使用问题

JSONObject和JSONArray使用注意:
(1)二者比较容易区别,别误用,JSONObject是{}结构,JSONArray是[]结构。
(2)如果没有对应的key,会抛出异常。
(3)如果put进去的东西是null,那么不会被存进去,但是”“可以。

JSONObject和JSONArray使用的几种常见情况:

//1 json对象转换为字符串  
        JSONObject subObject = new JSONObject();  
        subObject.put("ooo", "***");  
        subObject.put("ppp", "&&&");  

        JSONObject object = new JSONObject();  
        object.put("aaa", "111");  
        object.put("bbb", null);  
        object.put("ccc", subObject);  

        System.out.println(object.toString());
        /*//{"aaa":"111","ccc":{"ppp":"&&&","ooo":"***"},"bbb":"222"}

//2 json数组对象装换为字符串
        //JSONObjectJSONArray
        JSONArray array = new JSONArray();  
        JSONObject object1 = new JSONObject();  
        object1.put("aaa", "111");  
        object1.put("bbb", "中文");  

        JSONObject object2 = new JSONObject();  
        object2.put("aaa", "111");  
        object2.put("bbb", "222");  

        array.put(object1);  
        array.put(object2);  

        System.out.println(array.toString());
        //[{"aaa":"111","bbb":"中文"},{"aaa":"111","bbb":"222"}]

//3 字符串转换为json对象  
        String jsonStr = "{\"aaa\":\"111\",\"ccc\":{\"ooo\":\"***\",\"ppp\":\"&&&\"},\"bbb\":\"222\"}";  
        JSONParser parser = new JSONParser();  
        try {  
            JSONObject parseObject = (JSONObject)parser.parse(jsonStr);  
            System.out.println("---->" + parseObject.toJSONString());  
        } catch (ParseException e) {  
            e.printStackTrace();  
        }  

//4 字符串转换为数组  
        jsonStr = "[{\"aaa\":\"111\",\"bbb\":\"222\"},{\"aaa\":\"111\",\"bbb\":\"222\"}]";  
        try {  
            JSONArray parseObject = (JSONArray)parser.parse(jsonStr);  
            System.out.println("---->" + parseObject.toJSONString());  
        } catch (ParseException e) {  
            e.printStackTrace();  
        }  

//5  集合转换为JSONArray对象
//初始化ArrayList集合并添加数据
        List<String> list = new ArrayList<String>();
        list.add("username");
        list.add("age");
        list.add("sex");
        //初始化HashMap集合并添加数组
        Map map = new HashMap();
        map.put("bookname", "CSS3实战");
        map.put("price", 69.0);

        //初始化JSONArray对象,并添加数据
        JSONArray array2 = new JSONArray();
        array2.put(list);
        array2.put(map);

        System.out.println(array2.toString());
        //生成的JSON字符串为:[["username","age","sex"],{"bookname":"CSS3实战","price":69}]

//6  根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象
        //接收到的JSON字符串
        String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";

        //根据字符串生成JSON对象
        JSONArray resultArray = JSONArray.fromObject(result);
        JSONObject resultObj = resultArray.optJSONObject(0);

        //获取数据项
        String username = resultObj.getString("username");

        //获取数据对象
        JSONObject user = resultObj.getJSONObject("user_json");
        String nickname = user.getString("nickname");
        System.out.println(username);//your name


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值