大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
今天需要遍历一下json,但是只查到了遍历一层json的文章,满足不了多层级的json遍历。所以自己写一下,用fastJson处理。
所遍历json需要考虑一下多层级的json,需要考虑的就是 JSONObject 和 JSONArray 两种情况,对这两种情况做处理,采用递归向下遍历,用instanceof判断递归到的类型,做不同处理。下边贴上代码:
public class JsonLoop {
public static String json = "{\"TITLE\":\"Json Title\",\"FORM\":{\"USERNAME\":\"Rick and Morty\"},\"ARRAY\":[{\"FIRST\":\"Rick\"},{\"LAST\":\"Morty\"}]}";
public static void jsonLoop(Object object) {
if(object instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) object;
for (Map.Entry<String, Object> entry: jsonObject.entrySet()) {
Object o = entry.getValue();
if(o instanceof String) {
System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
} else {
jsonLoop(o);
}
}
}
if(object instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) object;
for(int i = 0; i < jsonArray.size(); i ++) {
jsonLoop(jsonArray.get(i));
}
}
}
public static void main(String[] args) {
JSONObject jsonObject = JSON.parseObject(json);
jsonLoop(jsonObject);
}
}
遍历如下包含 JSONObject 和 JSONArray 的json数据:
{
“TITLE”:”Json Title”,
“FORM”:{
“USERNAME”:”Rick and Morty”
},
“ARRAY”:[
{
“FIRST”:”Rick”
},
{
“LAST”:”Morty”
}
]
}
下边是输出结果:
key:FIRST,value:Rick
key:LAST,value:Morty
key:USERNAME,value:Rick and Morty
key:TITLE,value:Json Title
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197707.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...