eg:json 的一条数据
{
"告警列表":[
{
"taskid":"36",
"接收人":"",
"域名":"总局门户网站",
"时间":"2018-03-26 18:41:29",
"类型":"3",
"描述":"网站监控:网站监测-内容监控[总局门户网站]存在网页内容安全性风险,发现1个网页敏感词;
(监控总页面数:25)。
[告警时间:2018-03-26 18:41:29\n发件单位:网神信息技术(北京)股份有限公司\t所属账户:admin]",
"站点id":"819",
"告警id":"75536"
}
]
}
可以从上面看出是一个对象包含一个数组,数组里面包含一个对象。
{}对象
[]数组
转成String
// String json_2="{\r\n" +
// " \"告警列表\":[\r\n" +
// " {\r\n" +
// " \"taskid\":\"36\",\r\n" +
// " \"接收人\":\"\",\r\n" +
// " \"域名\":\"总局门户网站\",\r\n" +
// " \"时间\":\"2018-04-10 18:41:29\",\r\n" +
// " \"类型\":\"3\",\r\n" +
// " \"描述\":\"网站监控:网站监测-内容监控[总局门户网站]存在网页内容安全性风险,发现1个网页敏感词;(监控总页面数:25)。[告警时间:2018-03-26 18:41:29\\n发件单位:网神信息技术(北京)股份有限公司\\t所属账户:admin]\",\r\n" +
// " \"站点id\":\"819\",\r\n" +
// " \"告警id\":\"75536\"\r\n" +
// " }\r\n" +
// " ]\r\n" +
// "}";
fastjson解析 拿到数据 循环解析列表对象 适合大批量数据解析
com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(json_2);
com.alibaba.fastjson.JSONArray value = jsonObject.getJSONArray("告警列表");
for (int i = 0; i < value.size(); i++) {
com.alibaba.fastjson.JSONObject listValue=(com.alibaba.fastjson.JSONObject) value.get(i);
}
json原生解析 适合少量数据解析
/ //获取对象
JSONObject jsonObject_2 = JSONObject.fromObject(json_2);
// //获取数组value
JSONArray value = jsonObject_2.getJSONArray("告警列表");
for (int i = 0; i < value.size(); i++) {
JSONObject listValue = value.getJSONObject(i);
JsonArray json数组解析
// 一个未转化的字符串
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ;
// 首先把字符串转成 JSONArray 对象
JSONArray json = JSONArray.fromObject(str );
if(json.size()>0){
for(int i=0;i<json.size();i++){
// 遍历 jsonarray 数组,把每一个对象转成 json 对象
JSONObject job = json.getJSONObject(i);
// 得到 每个对象中的属性值
System.out.println(job.get("name")+"=") ;
}
}
json对象转换
JSONObject jsonObject=JSONObject.parseObject(JSONObject.toJSONString(data);
InsProjectLosstable insProjectLosstable=jsonObject.getObject("insProjectLosstable", InsProjectLosstable.class);