json 详解

/**
     * 使用第三方工具,将JavaBean对象/List或Set或Map对象转成JSON
     */
    
    @Test
    public void test01(){

        User user = new User("张三",13,"男");
        JSONArray jSONArray = JSONArray.fromObject(user); //将java对象转换成json数组
        System.out.println( jSONArray.toString()); //[{"age":13,"name":"张三","sex":"男"}]
    }
    
    
    @Test
    public void test02(){
        List<User> cityList = new ArrayList<User>();
        cityList.add(new User("张三",13,"男"));
        cityList.add(new User("王五",19,"男"));
        JSONArray jSONArray = JSONArray.fromObject(cityList); //将集合转换成json数组
        String jsonJAVA = jSONArray.toString();
        System.out.println(jsonJAVA); //[{"age":13,"name":"张三","sex":"男"},{"age":19,"name":"王五","sex":"男"}]

    }
    
    @Test
    public void test03(){
            List<User> cityList = new ArrayList<User>();
            cityList.add(new User("张三",13,"男"));
            cityList.add(new User("王五",19,"男"));
            Map<String,Object> map = new LinkedHashMap<String,Object>();
            map.put("total",cityList.size());//表示集合的长度
            map.put("rows",cityList);//rows表示集合
            
            JSONArray jSONArray = JSONArray.fromObject(map);
            String jsonJAVA = jSONArray.toString();
            System.out.println(jsonJAVA); //[{"total":2,"rows":[{"age":13,"name":"张三","sex":"男"},{"age":19,"name":"王五","sex":"男"}]}]
            
            jsonJAVA = jsonJAVA.substring(1,jsonJAVA.length()-1);
            System.out.println(jsonJAVA); //{"total":2,"rows":[{"age":13,"name":"张三","sex":"男"},{"age":19,"name":"王五","sex":"男"}]}

    }
    
    /*
    <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
    </dependency>
    */
    @Test
    public void test04(){
        
        //从字符串解析JSON对象
        JSONObject obj = JSON.parseObject("{\"runoob\":\"菜鸟教程\"}");
        System.out.println(obj); //{"runoob":"菜鸟教程"}
        
        //从字符串解析JSON数组
        JSONArray arr = JSON.parseArray("[\"菜鸟教程\",\"RUNOOB\"]\n");
        System.out.println(arr); // ["菜鸟教程","RUNOOB"]
        
        //将JSON对象转化为字符串
        String objStr = JSON.toJSONString(obj);
        System.out.println(objStr); //{"runoob":"菜鸟教程"}
        
        //将JSON对象转化为字符串
        String arrStr = JSON.toJSONString(arr);
        System.out.println(arrStr); //["菜鸟教程","RUNOOB"]
        
    }
    

1. JSONObject创建的方法:

        //创建JsonObject第一种方法
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("UserName", "kobi");
        jsonObject.put("age", "34");
        jsonObject.put("workIn", "ALI");
        System.out.println("jsonObject1:" + jsonObject); //jsonObject1:{"UserName":"kobi","age":"34","workIn":"ALI"}
         
        //创建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)); //jsonObject2:{"UserName":"ZHULI","workIn":"ALI","age":"30"}

2.JSONArray创建的方法:

        //创建一个JsonArray方法1
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0, "kobi");
        jsonArray.add(1, "34");
        jsonArray.add(2, "ALI");
        System.out.println("jsonArray1:" + jsonArray); //jsonArray1:["kobi","34","ALI"]
         
        //创建JsonArray方法2
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("kobi");
        arrayList.add("34");
        arrayList.add("ALI");
        System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList)); //jsonArray2:["kobi","34","ALI"]

3.解析JSON字符串:

          String jsonString = "{\"UserName\":\"kobi\",\"age\":\"34\",\"workIn\":\"ALI\",\"Array\":[\"kobi\",\"34\",\"ALI\"]}";
          //将Json字符串转为java对象
          JSONObject obj = JSONObject.fromObject(jsonString);
          System.out.println("obj:"+obj); //obj:{"UserName":"kobi","age":"34","workIn":"ALI","Array":["kobi","34","ALI"]}
          //获取Object中的UserName
          if (obj.has("UserName")) {
               System.out.println("UserName:" + obj.getString("UserName")); //UserName:kobi
          }
          //获取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) + " "); //Array:kobi Array:34 Array:ALI 
           }
         }

 

 

 

         <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>net.sf.ezmorph</groupId>
            <artifactId>ezmorph</artifactId>
            <version>1.0.6</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>

        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>

 

posted @ 2020-06-11 16:45  一场屠夫的战争  阅读(380)  评论(0)    收藏  举报