zoukankan      html  css  js  c++  java
  • Java学习笔记50:JSONObject与JSONArray的使用(转)

    Java不像PHP解析和生产JSON总是一个比较痛苦的过程。但是使用JSONObject和JSONArray会让整个过程相对舒服一些。

    需要依赖的包:commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar  ezmorph.jar json-lib-2.2.2-jdk15.jar

    1. 创建一个JSONObject对象:

    package com.yunos.tv.video.resource.controller.web;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    
    public class Test {
    
        public static void main(String[] args) {
            //JsonObject和JsonArray区别就是JsonObject是对象形式,JsonArray是数组形式
            //创建JsonObject第一种方法
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("UserName", "ZHULI");
            jsonObject.put("age", "30");
            jsonObject.put("workIn", "ALI");
            System.out.println("jsonObject1:" + jsonObject);
            
            //创建JsonObject第二种方法
            HashMap<String, String> hashMap = new HashMap<String, String>();
            hashMap.put("UserName", "ZHULI");
            hashMap.put("age", "30");
            hashMap.put("workIn", "ALI");
            System.out.println("jsonObject2:" + JSONObject.fromObject(hashMap));
            
            //创建一个JsonArray方法1
            JSONArray jsonArray = new JSONArray();
            jsonArray.add(0, "ZHULI");
            jsonArray.add(1, "30");
            jsonArray.add(2, "ALI");
            System.out.println("jsonArray1:" + jsonArray);
            
            //创建JsonArray方法2
            ArrayList<String> arrayList = new ArrayList<String>();
            arrayList.add("ZHULI");
            arrayList.add("30");
            arrayList.add("ALI");
            System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));
            
            //如果JSONArray解析一个HashMap,则会将整个对象的放进一个数组的值中
            System.out.println("jsonArray FROM HASHMAP:" + JSONArray.fromObject(hashMap));
            
            //组装一个复杂的JSONArray
            JSONObject jsonObject2 = new JSONObject();
            jsonObject2.put("UserName", "ZHULI");
            jsonObject2.put("age", "30");
            jsonObject2.put("workIn", "ALI");
            jsonObject2.element("Array", arrayList);
            System.out.println("jsonObject2:" + jsonObject2);
                    
        }
    }
    

    结果:

    jsonObject1:{"UserName":"ZHULI","age":"30","workIn":"ALI"}
    jsonObject2:{"workIn":"ALI","age":"30","UserName":"ZHULI"}
    jsonArray1:["ZHULI","30","ALI"]
    jsonArray2:["ZHULI","30","ALI"]
    jsonArray FROM HASHMAP:[{"workIn":"ALI","age":"30","UserName":"ZHULI"}]
    jsonObject2:{"UserName":"ZHULI","age":"30","workIn":"ALI","Array":["ZHULI","30","ALI"]}

    解析JSON字符串:

    package com.yunos.tv.video.resource.controller.web;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    
    public class Test {
    
        public static void main(String[] args) {
            String jsonString = "{"UserName":"ZHULI","age":"30","workIn":"ALI","Array":["ZHULI","30","ALI"]}";
            //将Json字符串转为java对象
            JSONObject obj = JSONObject.fromObject(jsonString);
            //获取Object中的UserName
            if (obj.has("UserName")) {
                System.out.println("UserName:" + obj.getString("UserName"));
            }
            //获取ArrayObject
            if (obj.has("Array")) {
                JSONArray transitListArray = obj.getJSONArray("Array");
                for (int i = 0; i < transitListArray.size(); i++) {
                    System.out.print("Array:" + transitListArray.getString(i) + " ");
                }
            }
        }
    }
    


    返回:

    UserName:ZHULI
    Array:ZHULI Array:30 Array:ALI 
  • 相关阅读:
    Windows-Windows 下使用 Linux 系统(WSL)
    Windows
    多校3 1002 RGCDQ
    三分 Error Curves
    Equation Again 最大化最小值
    Monthly Expense
    Hamburgers 假定解是否可行
    多校2 1002 Buildings
    UVa 10881 Piotr’s Ants
    多校1 Assignment(枚举 二分 rmq) 1002
  • 原文地址:https://www.cnblogs.com/Syria/p/6422265.html
Copyright © 2011-2022 走看看