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());*/
}
}
}