说在前面:
JSONObject的形式是:{"a":"火龙果","b":"火龙果","c":"火龙果"}。JSONArray形式是:[1,"b","c"]。
其中JSONObject中可以有JSONArray,形如:{"a":["香蕉","草莓"]};JSONArray中可以有JSONObject,形如:[{"a":"苹果"},{"b":"香蕉"}];
JSONObject:
- 创建对象,添加元素:
见这一篇:https://blog.csdn.net/HenryMrZ/article/details/79692462
从JSON字符串转JSON对象,需要注意的是双引号需要转义字符、需要严格的按照固定的格式转换:
JSONObject json = new JSONObject();
System.out.println("json:"+json.fromObject("{\"a\":\"苹果\"}"));
- 从Map转JSON对象
Map<String , String > map=new HashMap<String , String>();
map.put("a", "111");
map.put("b", "222");
System.out.println("map->json:"+JSONObject.fromObject(map));
map->json:{"a":"111","b":"222"}
JSONArray:
- 创建对象,添加元素:
根据API调用即可,没有需要特别说明的。
- 从JSONArray字符串转JSONArray对象:
String s="[\"a\",\"b\",\"c\"]";
JSONArray k=JSONArray.fromObject(s);
System.out.println(k);
["a","b","c"]
- 从字符串数组转JSONArray对象:
String[] ss=new String[3];
ss[0]="1";
ss[1]="2";
ss[2]="3";
JSONArray jsonArray=JSONArray.fromObject(ss);
System.out.println(jsonArray);
["1","2","3"]
总结:
1.字符串转JSON或者JSONArray对象时,需要严格按照固定的格式,即两边是用中括号还是大括号包围。
2.字符串解析时,不用关心JSON中是否有JSONArray或者JSONArry中是否有JSON,按照最外边的括号判断用什么解析之后自动会变成指定的对象。
3.若字符串中,有中括号或者大括号等特殊符号,见这一篇:https://blog.csdn.net/henrymrz/article/details/80819653