JSON数据的处理(二)—— 不同类型的json数据处理方式。

    xiaoxiao2022-06-24  158

    package com.example.demo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class Test { // 第一种格式 /** * { "data ": [ { "id ": "*** ", "num ": "** ",* "name ": "** "} , * "success ": true } ] */ @org.junit.Test public void contextLoads() { String s = "{\"success\":true,\"data\":[{\"id\":1,\"num\":20,\"name\":\"老李\",\"model\":[{\"mid\":1,\"mnum\":\"20\"}] }]}"; JSONObject jsonx = JSON.parseObject(s); JSONArray ja = jsonx.getJSONArray("data"); for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); //接收具体数值 /* Integer id = jo.getInteger("id"); String name = jo.getString("name");*/ JSONArray model = jo.getJSONArray("model"); System.out.println(model.toJSONString()); //可以把数据直接用实体类接收 System.out.println(jo.toJSONString()); TextDemo textDemo = JSON.parseObject(jo.toJSONString(), TextDemo.class); System.out.println("textDemo"+textDemo.toString()); } } //第二种格式 /** * [ { "num ": 11, "name":"张三" "success ": "true " } ] */ @org.junit.Test public void contextLoads1() { String s="[{\"success\":\"true\",\"num\":11,\"name\":\"张三\"}]"; JSONArray ja = JSON.parseArray(s); for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); System.out.println(jo.toJSONString()); } } // 第三种格式 /** * { "data ": [ "数据1:":{ "id ": "*** ", "num ": "** ",* "name ": "** "} ,"数据2:":{ "id ": "*** ", "num ": "** ",* "name ": "** "} ,"success ": true } ] */ @org.junit.Test public void contextLoads2() { String s = "{\"success\":true,\"data\":[{\"数据1\":{\"id\":1,\"num\":20,\"name\":\"老李\",\"model\":[{\"mid\":1,\"mnum\":\"20\"}]},\"数据2\":{\"id\":1,\"num\":10,\"name\":\"老郭\",\"model\":[{\"mid\":1,\"mnum\":\"20\"}]} }]}"; JSONObject jsonx = JSON.parseObject(s); JSONArray ja = jsonx.getJSONArray("data"); for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); System.out.println(jo.toJSONString()); //有时候我们需要把key也作为一个数据取出来 for (String str:jo.keySet()){ JSONObject jos = jo.getJSONObject(str); TextDemo demo = JSON.parseObject(jos.toJSONString(), TextDemo.class); System.out.println(demo.toString()); } //如果"数据1"key一样,那么可以用list接收 /*List<TextDemo> oddataDto = JSON.parseArray(ja.toJSONString(), TextDemo.class); System.out.println(oddataDto.toString());*/ } } }

     


    最新回复(0)