fastjson中list,map,实体对象常见格式和互相转换和举例说明:看看你那拿json串 到底是什么包含什么(具体格式),然后才能进⾏下⼀步操作
//json格式总结
//实体类json格式
//{"age":11,"name":"Java"}
//字符串型map json格式
//{"sex":"男","name":"张三","age":"20"}
//对象型map json格式
json转换对象//{"person3":{"age":33,"name":"Python"},"person2":{"age":22,"name":"C++"},"person1":{"age":11,"name":"Java"}}
//整型list json格式
// [1,2,3]
//字符串类型list json格式
// ["张三","李四","王五"]
//对象类型list json格式
// [{"age":11,"name":"Java"},{"age":22,"name":"C++"},{"age":33,"name":"Python"}]
//map型list json格式
// [{"person3":{"age":33,"name":"Python"},"person2":{"age":22,"name":"C++"},"person1":{"age":11,"name":"Java"}}]
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //fastjson转换总结
//map对象,list对象,或实体对象转JSONString //JSONString(对象)
//JSONString转map //JSON.parseObject(JSONString, Map.class)
//JSONString转实体对象 //JSON.parseObject(JSONString, 对象.class)
//JSONString转list<;实体对象> //JSON.parseArray(JSONString, 对象.class)
// //当⾥⾯是Object的时候还是⽤JSON.JSONString(o1), (Type) Object.class)
//map转对象或者是对象转map先转换成JSONString,再按照上⾯⽅法转
// 扩展
//遇到JSONArray和JSONObject先转换成JSONString,再按照上⾯⽅法转,记住JSONString是中转
//////////////////////////////////////////////////////////////////////////////////////////////////////////
粘贴⼀个4层嵌套json串遍历
{"list1":[{"person2":{"age":22,"name":"⼩⽩"},"person1":{"age":11,"name":"⼩明"}},{"person4":{"age":44,"name":"⼩蓝"},"person3": {"age":33,"name":"⼩黄"}}],"list2":[{"person20":{"age":220,"name":"⼩⽩0"},"person10":{"age":110,"name":"⼩明0"}},{"person30": {"age":330,"name":"⼩黄0"},"person40":{"age":440,"name":"⼩蓝0"}}]}
//这个json串是最外层是map,map套list,list⼜套map,map套对象
//这是实体对象Person(就⼀个age,和name,⾃⼰写)封装形成的,你要想直接⽤的话
/
/定义⼀个string,双引号改成单引号,最外层加上双引号就可以了
例String s ="{'age':11,'name':'Java'}";
//代码如下
public static void findObj(String json) {
Map map = JSON.parseObject(json);
for (Object aa : map.keySet()) {
Object o1 = (aa);//⼀层结束
List list = JSON.JSONString(o1), (Type) Object.class);
for (Object mapPerson : list) {//两层结束
Map mapNei = JSON.JSONString(mapPerson));
for (Object bb : mapNei.keySet()) {
Object o2 = (bb);//三层结束
Person person = JSON.JSONString(o2), Person.class);
System.out.println("名字" + Name() +",年龄" + Age());//四层获取
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
//粘贴⼀个三层嵌套的查值
//{"list1":[{"name":"⼩明"},{"name":"⼩⽩"}],"list2":[{"name":"⼩黄"},{"name":"⼩蓝"}]}
//String input21 ="list2[1].name";//传⼀个参数,出值是多少。
/
/代码如下
public static StringfindObj(String json, String input) {
Map listMap = JSON.parseObject(json, Map.class);
int preIndex = input.indexOf("[");
int lastIndex = input.indexOf("]");
String pre = input.substring(0, preIndex);
String middle = input.substring(preIndex +1, lastIndex);
String last = input.substring(lastIndex +1);
int middleInt = Integer.parseInt(middle);
///////////////////////////////////////////////////
Object listMaoGet = (pre);
List list = JSON.JSONString(listMaoGet), User.class);
if (last.equals(".name")) {
(middleInt).getName();
}
return null;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////依赖
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论