【JSON解析】浅谈JSONObject的使用(下)

326 阅读5分钟
List与json字符串互转

先定义list集合,list转json字符串

[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//定义list集合
List list = new ArrayList();
list.add(new Student("张三", "123"));
list.add(new Student("李四", "456"));
//list转json字符串
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);</font></font></font>

json字符串转list

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//json字符串转list
List list2 = new ArrayList();
String jsondata = "[{\"password\":\"123\",\"username\":\"张三\"},{\"password\":\"456\",\"username\":\"李四\"}]";
JSONArray jsonArray1 = JSONArray.fromObject(jsondata);
for(int i = 0; i < jsonArray1.size(); i++) {
JSONObject jsonObject2 = jsonArray1.getJSONObject(i);
Student stu2 = (Student)JSONObject.toBean(jsonObject2, Student.class);
list2.add(stu2);
}
System.out.println(list2);</font></font></font>

全部代码

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Json {
public static void main(String[] args) {
//定义list集合
List list = new ArrayList();
list.add(new Student("张三", "123"));
list.add(new Student("李四", "456"));
//list转json字符串
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
//json字符串转list
List list2 = new ArrayList();
String jsondata = "[{\"password\":\"123\",\"username\":\"张三\"},{\"password\":\"456\",\"username\":\"李四\"}]";
JSONArray jsonArray1 = JSONArray.fromObject(jsondata);
for(int i = 0; i < jsonArray1.size(); i++) {
JSONObject jsonObject2 = jsonArray1.getJSONObject(i);
Student stu2 = (Student)JSONObject.toBean(jsonObject2, Student.class);
list2.add(stu2);
}
System.out.println(list2);
}
}</font></font></font>

运行结果

Map与json字符串互转

定义map集合,Map转json字符串

[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//定义map集合
Map map = new HashMap();
map.put("1", new Student("张三", "123"));
map.put("2", new Student("李四", "456"));
//Map转json字符串
JSONObject jsonMap = JSONObject.fromObject(map);
System.out.println(jsonMap);</font></font></font>

定义字符串map集合,map集合字符串转为map

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//定义字符串map集合
String jsondata = "{\"1\":{\"password\":\"123\",\"username\":\"张三\"},\"2\":{\"password\":\"456\",\"username\":\"李四\"}}";
//map集合字符串转为map
Map map2 = (Map)JSONObject.fromObject(jsondata);
Set set = map2.keySet();
//定义迭代器,迭代输出
Iterator ite = set.iterator();
while(ite.hasNext()) {
//取出一个字符串对象
String key = (String)ite.next();
//转为json格式
JSONObject jsonObject = JSONObject.fromObject(map2.get(key));
//转为对象
Student stu = (Student)JSONObject.toBean(jsonObject, Student.class);
System.out.println(key+" "+stu);
}</font></font></font>

全部代码

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import net.sf.json.JSONObject;
public class Json {
public static void main(String[] args) {
//定义map集合
Map map = new HashMap();
map.put("1", new Student("张三", "123"));
map.put("2", new Student("李四", "456"));
//Map转json字符串
JSONObject jsonMap = JSONObject.fromObject(map);
System.out.println(jsonMap);
//定义字符串map集合
String jsondata = "{\"1\":{\"password\":\"123\",\"username\":\"张三\"},\"2\":{\"password\":\"456\",\"username\":\"李四\"}}";
//map集合字符串转为map
Map map2 = (Map)JSONObject.fromObject(jsondata);
Set set = map2.keySet();
//定义迭代器,迭代输出
Iterator ite = set.iterator();
while(ite.hasNext()) {
//取出一个字符串对象
String key = (String)ite.next();
//转为json格式
JSONObject jsonObject = JSONObject.fromObject(map2.get(key));
//转为对象
Student stu = (Student)JSONObject.toBean(jsonObject, Student.class);
System.out.println(key+" "+stu);
}
}
}</font></font></font>

运行结果

JSONArray与List互转

定义list集合,List转型JSONArray

[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//定义list集合
List<Student> list = new ArrayList<Student>();
list.add(new Student("张三", "123"));
list.add(new Student("李四", "456"));
//List转型JSONArray
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());</font></font></font>

JSONArray转型List,JSONArray是用的上面的那个jsonArray变量

[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//JSONArray转型List
List<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig());
Iterator<Student> ite = list2.iterator();
while(ite.hasNext()) {
Student stu = ite.next();
System.out.println(stu);
}</font></font></font>

全部代码

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
public class Json {
public static void main(String[] args) {
//定义list集合
List<Student> list = new ArrayList<Student>();
list.add(new Student("张三", "123"));
list.add(new Student("李四", "456"));
//List转型JSONArray
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
//JSONArray转型List
List<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig());
Iterator<Student> ite = list2.iterator();
while(ite.hasNext()) {
Student stu = ite.next();
System.out.println(stu);
}
}
}</font></font></font>

运行结果

JSONArray与数组互转

定义数组,数组转JSONArray

[Java] 纯文本查看 复制代码
1
2
3
4
5
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//定义数组
boolean[] boolArray = {true, false, true};
//java数组转JSONArray
JSONArray jsonArray = JSONArray.fromObject(boolArray);
System.out.println(jsonArray.toString());</font></font></font>

JSONArray转java数组

[Java] 纯文本查看 复制代码
1
2
3
4
5
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">//JSONArray转java数组
Object obj[] = jsonArray.toArray();
for(Object o : obj) {
System.out.print(o+"\t");
}</font></font></font>

全部代码

[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<font style="color:rgb(77, 77, 77)"><font face="&quot;"><font style="font-size:16px">import net.sf.json.JSONArray;
public class Json {
public static void main(String[] args) {
//定义数组
boolean[] boolArray = {true, false, true};
//java数组转JSONArray
JSONArray jsonArray = JSONArray.fromObject(boolArray);
System.out.println(jsonArray.toString());
//JSONArray转java数组
Object obj[] = jsonArray.toArray();
for(Object o : obj) {
System.out.print(o+"\t");
}
}
}</font></font></font>

运行结果


更多学习资料可关注:annalin1203获取