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输出
字符串转数组