1 import java.util.LinkedList;
2 import java.util.*;
3 import java.util.ListIterator;
4
5 import net.sf.json.JSONArray;
6 import net.sf.json.JSONObject;
7
10 public class a11111111 {
11 public static void main(String[] args) {
12
13 JSONObject obj=new JSONObject();
14 obj.put("name", "小明");
15 obj.put("age", "10");
16 //输出json对象这种数据结构是:{"name":"小明","age":"10"}
17 JSONArray jsonobj = JSONArray.fromObject(obj); 对象转数组
18 //[{"name":"小明","age":"10"}]
19
20 //数组
21 JSONArray array=new JSONArray();
22 array.add("1");
23 array.add("2");
24 array.add("3");
25 array.add(3,obj);
26 //["1","2","3",{"name":"小明","age":"10"}]
27
//字符串
28 String str ="{name:Tom,age:10}" ; // 不可以这样定义str
29 String str1 = "{\"name\": \"小明\",\"age\": 10 }";
30
//MAP
31 Map<String, Object> map = new HashMap<String, Object>();
32 map.put("1001", "yes");//map里面装有yes
33 map.put("1002", array);//map里面装有yes
34 // {1002=["1","2","3",{"name":"小明","age":"10"}], 1001=yes}
35
36
37 //数组不可转对象
38 // JSONObject jsonobj = JSONObject.fromObject(array);
39 JSONObject jsonobj0 = JSONObject.fromObject(array.get(3));//字符串转对象
40 JSONObject jsonobj1 = JSONObject.fromObject(str1);
41 JSONObject jsonobj2 = JSONObject.fromObject(map);//map转对象
42 System.out.println(jsonobj0);
43 System.out.println(jsonobj1);
44 System.out.println(jsonobj2);
45
46 /*{"name":"小明","age":"10"}
47 {"name":"小明","age":10}
48 {"1002":["1","2","3",{"name":"小明","age":"10"}],"1001":"yes"} */
49
//都是输出:小明
50 System.out.println(jsonobj0.get("name"));
51 System.out.println(jsonobj1.get("name"));
53 JSONArray str_ = JSONArray.fromObject(jsonobj2.get("1002"));//字符串转数组
54 System.out.println(JSONObject.fromObject(str_.get(3)).get("name"));
55 //字符串再转对象
System.out.println(str_.get(3).equals(jsonobj0));//true
56 //内容相容,但一个是对象 一个是字符串 拥有的方法不同
57
//所有的先转成json对象-然后再转成map
HashMap<String, Object> data = new HashMap<String, Object>();
58 Iterator it = jsonobj0.keys();
59 // 遍历jsonObject数据,添加到Map对象
60 while (it.hasNext())
61 {
62 String key = (String)it.next();
63 String value = (String) jsonobj0.get(key);
64 data.put(key, value);
65 }
66 System.out.println(data);
67 //map {name=小明, age=10}
68 69
70 /*所有的obj调用toString()方法转成字符串*/
71 75 // java中数据结构可以直接按名输出,也可以数据结构名.toString输出
字符串转数组