最近在得到数据,转换数据的时候常常不明白什么时候需要使用JSONObject,什么时候需要使用JSONArray。
今天特地去查了一些网页终于弄明白了。
1.其实,JSONObject就是一个java对象,用{}包裹起来 例如:{”id”:1 , “username”:”dawn”}
2.而JSONArray就是相对于java的数组。例如jsonArray2:["柯文修","23","5"]
3.那么有人问我{"id":3,"name":"lisi","age":23,"arrayList":[{"柯文修","23","5"},{"ZHULI","30","6"}]}这个是什么情况你?很简单就是 JSONOb中嵌套了JSONArray。
那么,如何给JSONObject赋值呢?
1. JSONObject jsonObj1 = new JSONObject();
jsonObj1.put("id", "1");
jsonObj1.put("name", "rose");
jsonObj1.put("age", 25);
2. Map map=new HashMap();
map.put("我","妹");
map.put("擦","哇");
map.put("你","呀");
JSONObject json = JSONObject.fromObject(map);
3. String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
JSONObject jsonObj = JSONObject.fromObject(jsonStr);//从字符串转成java代码
那么如何给JSONArray赋值呢?
1. JSONArray jsonArray3 = new JSONArray();
jsonArray3.add("4");
jsonArray3.add("wangwu");
jsonArray3.add("26");
2. ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("柯文修");
arrayList.add("23");
arrayList.add("5");
JSONArray.fromObject(arrayList);
3. HashMap<String, Object> map = new HashMap<String,Object>();
map.put("id", "2");
map.put("name", "zhangsan");
map.put("age", "25");
JSONArray jsonArray3 = new JSONArray();
jsonArray3.add(map);
4. JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "ZHULI");
jsonArray.add(1, "30");
jsonArray.add(2, "ALI");
jsonArray.add(1, "31");
jsonArray.add(2,"Aroon");
那么如何复制嵌套的呢?
1 ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("柯文修");
arrayList.add("23");
arrayList.add("5");
JSONArray.fromObject(arrayList);//先是变成一个JSONArray
//创建一个复杂JSON对象(JSON对象里有JSON数组)
JSONObject jsonObj3 = new JSONObject();
jsonObj3.put("id", 3);
jsonObj3.put("name", "lisi");
jsonObj3.put("age", 23);
jsonObj3.put("arrayList", arrayList);//讲arrayList放入到JSONObject中
System.out.println("jsonObj3"+jsonObj3);