json編碼;是一個輕量級的資料存放區和傳輸的語言
在java中需要引入json相關的包,引包方式在工程的lib下就可以了
JSON與JAVA資料的轉換(JSON 即 JavaScript Object Natation,它是一種輕量級的資料交換格式,非
常適合於伺服器與 JavaScript 之間的資料的互動)
json的運算式相當於JavaScript的原始類的聲明方式相似
| 代碼如下 |
複製代碼 |
var obj={
name:"javascript",
age:20
}; |
將java轉成json的編碼錶達式;
1, 建立json的基本對象
Json代碼
String str="{}";//將java轉化為json必須要先建立需要轉換的資料
JSONObject jsonobj =new JSONObject.fromObject(str);//將java資料裝換為json的編碼方式
2,使用for迴圈幾個數字放入建立的json對象中
| 代碼如下 |
複製代碼 |
for(int i=0;i<5;i++){
jsonobj.put("json"+i,i);//將java資料放到json對象中去
// jsonobj.put("json"+i, i);和put的執行結果一樣
// jsonobj.accumulate("json"+i, i);和put的執行結果一樣
System.out.println(jsonobj.toString());//列印json的資料
} |
Json代碼
結果:
{"id0":0}
{"id0":0,"id1":1}
{"id0":0,"id1":1,"id2":2}
{"id0":0,"id1":1,"id2":2,"id3":3}
{"id0":0,"id1":1,"id2":2,"id3":3,"id4":4}
3,使用put向json中放一個JSONObject對象
Json代碼
| 代碼如下 |
複製代碼 |
for(int i=0;i<5;i++){
jsonobj.put("json"+i,i);//將java資料放到json對象中去
// jsonobj.put("json"+i, i);和put的執行結果一樣
// jsonobj.accumulate("json"+i, i);和put的執行結果一樣
System.out.println(jsonobj.toString());//列印json的資料
} |
結果:
{"id0":0,"id1":1,"id2":2,"id3":3,"id4":4,"jsonobj":{"date0":0}}
{"id0":0,"id1":1,"id2":2,"id3":3,"id4":4,"jsonobj":{"date0":0,"date1":1}}
{"id0":0,"id1":1,"id2":2,"id3":3,"id4":4,"jsonobj":{"date0":0,"date1":1,"date2":2}}
{"id0":0,"id1":1,"id2":2,"id3":3,"id4":4,"jsonobj":{"date0":0,"date1":1,"date2":2,"date3":3}}
{"id0":0,"id1":1,"id2":2,"id3":3,"id4":4,"jsonobj":{"date0":0,"date1":1,"date2":2,"date3":3,"date4":4}}
4,將數組添加到json中
| 代碼如下 |
複製代碼 |
// 建立json的基本對象
String date = "{}";
JSONObject jsonobj = JSONObject.fromObject(date);
// 使用int將數值放到json
for (int j = 0; j < 5; j++) {
// jsonobj.put("id"+j, j);
// jsonobj.accumulate("id"+j, j);
jsonobj.element("id" + j, j);
//System.out.println(jsonobj.toString());
} |
結果:
{"arr":["json","ajax","Jquery","javascript"]}
5,將list放到json中
Java代碼
| 代碼如下 |
複製代碼 |
|
String date = "{}";
JSONObject jsonobj = JSONObject.fromObject(date);
ArrayList<String> list = new ArrayList<String>();
list.add("json");
list.add("java");
list.add("android");
jsonobj.put("jsonobj", list);
System.out.println(jsonobj.toString()); |
結果:{"jsonobj":["json","java","android"]}
6,將map放到json中
Json代碼
| 代碼如下 |
複製代碼 |
String date = "{}";
JSONObject jsonobj = JSONObject.fromObject(date);//建立轉化的對象
Map<String,Object> map = new HashMap<String, Object>();//建立map隊列
map.put("map1", "json");
map.put("map2", "java");
map.put("map3", "android");
jsonobj.put("map", map); //放到json中
System.out.println(jsonobj.toString()); |
結果:
{"map":{"map3":"android","map2":"java","map1":"json"}}
7,使用 putAll 將json放到隊列中
Json代碼
| 代碼如下 |
複製代碼 |
String date = "{}";
JSONObject jsonobj = JSONObject.fromObject(date);//建立轉化的對象
Map<String,Object> map = new HashMap<String, Object>();
map.put("map1", "json");
map.put("map2", "android");
map.put("map3", "Jquery");
jsonobj.putAll(map);
System.out.println(jsonobj.toString()); |
結果:
{"map3":"Jquery","map2":"android","map1":"json"}
8,區分put和putAll的區別:
put;會有一個對象 {"map":{"map3":"android","map2":"java","map1":"json"}}
putAll沒有 {"map3":"Jquery","map2":"android","map1":"json"}
9, 組合: (返回的結果value是一個對象數組)
Json代碼
| 代碼如下 |
複製代碼 |
//思路:
// 1,建立轉化為json的對象
// 2,建立ArrayList隊列存放轉化的json對象
// 3,使用for迴圈3次,建立json的對象,向迴圈建立的json添加值
// 4,將迴圈建立的json對象放到隊列中
// 5,將隊列添加到json中
String date = "{}";
JSONObject jsonobj = JSONObject.fromObject(date);//建立轉化的對象
ArrayList<JSONObject> list = new ArrayList<JSONObject>();//建立隊列
for(int i=0; i<3; i++){ //迴圈
JSONObject json = JSONObject.fromObject(date); //轉化的java
json.put("aaaa"+i, i);
json.put("bbbb"+i, i);
json.put("cccc"+i, i);
list.add(json);
}
jsonobj.put("succList", list);
System.out.println(jsonobj.toString()); |
結果:
{"succList":[
{"aaaa0":0,"bbbb0":0,"cccc0":0},
{"aaaa1":1,"bbbb1":1,"cccc1":1},
{"aaaa2":2,"bbbb2":2,"cccc2":2}
] }
10,json的組合,返回的結果的值是一個數組
Json代碼
| 代碼如下 |
複製代碼 |
// 建立json的基本對象
String date = "{}";
JSONObject jsonobj = JSONObject.fromObject(date);
String[] str={"json","ajax","Jquery","javascript"};//數組
jsonobj.put("arr", str);
ArrayList<JSONObject> list = new ArrayList<JSONObject>();//建立隊列
for(int i=0; i<3; i++){ //迴圈
JSONObject json = JSONObject.fromObject(date); //轉化的java
json.put("aaaa"+i, i);
json.put("bbbb"+i, i);
json.put("cccc"+i,str ); //添加一個數組
list.add(json);
}
jsonobj.put("succList", list);
System.out.println(jsonobj.toString()); |
結果:
{"arr":["json","ajax","Jquery","javascript"],
"succList":[{"aaaa0":0,"bbbb0":0,"cccc0":["json","ajax","Jquery","javascript"]},
{"aaaa1":1,"bbbb1":1,"cccc1":["json","ajax","Jquery","javascript"]},
{"aaaa2":2,"bbbb2":2,"cccc2":["json","ajax","Jquery","javascript"]}
]}
11,組合,任意的嵌套;
Json代碼
| 代碼如下 |
複製代碼 |
// 建立json的基本對象
String date = "{}";
JSONObject jsonobj = JSONObject.fromObject(date);
String[] str={"json","ajax","Jquery","javascript"};//數組
//轉化java的json嵌套到json中
JSONObject jsonDemo = JSONObject.fromObject(date);
for(int n=0;n<3;n++){
jsonDemo.put("組合"+n, n);
}
ArrayList<JSONObject> list = new ArrayList<JSONObject>();//建立隊列
for(int i=0; i<3; i++){ //迴圈
JSONObject json = JSONObject.fromObject(date); //轉化的java
json.put("aaaa"+i, jsonDemo); //嵌套的json
json.put("bbbb"+i, "java");
json.put("cccc"+i,str ); //值為一個數組
list.add(json);
}
jsonobj.put("succList", list);
System.out.println(jsonobj.toString()); |
運行結果:
{"succList":
[{"aaaa0":{"組合0":0,"組合1":1,"組合2":2},
"bbbb0":"java","cccc0":["json","ajax","Jquery","javascript"]},
{"aaaa1":{"組合0":0,"組合1":1,"組合2":2},
"bbbb1":"java","cccc1":["json","ajax","Jquery","javascript"]},
{"aaaa2":{"組合0":0,"組合1":1,"組合2":2},
"bbbb2":"java","cccc2":["json","ajax","Jquery","javascript"]}
]}