JSON和XML真正在進行數據交換時候,它們存在的形式就是一個很長的字符串,這個字符串在網絡 中傳輸或者存儲於磁盤等介質中。在傳輸和存儲之前需要把JSON對象轉換成爲字符串才能傳輸和存 儲,這個過程稱之爲“編碼”過程。接收方需要將接收到的字符串轉換成爲JSON對象,這個過程稱之 爲“解碼”過程。編碼和解碼過程就像發電報時發送方把語言變成能夠傳輸的符號,而接收時要將符號 轉換成爲能夠看懂的語言。
流程圖如下:
介紹一下JSON對象與JSON字符串區別:
JSON對象:
var person={"name":"zhangsan","sex":"男","age":"24"}//json對象
alert(person.name);//zhangsan
alert(typeof person);//object
JSON字符串:
var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串
alert(person);//{"name":"zhangsan","sex":"男","age":"24"}
alert(typeof person);//string
由於目前Java官方沒有提供JSON編碼和解碼所需要的類庫,所以需要使用第三方JSON庫。我這裏推薦使用JSON-java庫,你可以去這裏下載,也可以去百度雲下載鏈接https://pan.baidu.com/s/1qCfaI-d9vw-gs_COmjpxkg 密碼:z1ld
下載完成之後,我們需要把報導入到IDEA:
第一步:創建org.json包
在src文件夾中右擊new,選擇Package,然後輸入包名稱org.json。
第二步:複製源代碼文件
將下載好的JSON-java庫裏面的所有文件全部複製到org.json中
下面開始JSON數據解碼與編碼
先看編碼:
如果想獲得如下這樣JSON字符串:
{"a":[1,2,3],"name":"tony","age":30}
實現編碼過程,參考代碼如下:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Arrays;
import java.util.List;
/**
* @author : 蔡政潔
* @email :[email protected]
* @date : 2020/2/20
* @time : 10:01 下午
*/
//如果想得到JSON字符串{"a":[1,2,3],"name":"tony","age":30},要編碼
public class HelloWorld {
public static void main(String[] args) {
try {
JSONObject object = new JSONObject();
object.put("name","tony");
object.put("age",30);
// 第一種加入列表方式
// List<Integer> integers = Arrays.asList(1,2,3);
// object.put("a",integers);
// 第二種加入列表方式
JSONArray jsonArray = new JSONArray();
jsonArray.put(1).put(3);
object.put("a",jsonArray);
// 編碼完成
System.out.println(object.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
}
就可以得到上面的運行結果
再看解碼:解碼過程是編碼反向操作,如果有如下JSON字符串
{"a":[1,2,3],"name":"tony","age":30}
JSON字符串解碼成JSON對象或數組,參考代碼如下:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
* @author : 蔡政潔
* @email :[email protected]
* @date : 2020/2/20
* @time : 11:17 下午
*/
//解碼過程是編碼的反向操作
public class HelloWorld {
public static void main(String[] args) {
// 聲明一個json字符串
String jsonString = "{\"a\":[1,2,3],\"name\":\"tony\",\"age\":30}";
try {
JSONObject object = new JSONObject(jsonString);
System.out.println(object);
String name = object.getString("name");
System.out.println("name : "+name);
int age = object.getInt("age");
System.out.println("age : "+age);
JSONArray jsonArray = object.getJSONArray("a");
int n1 = jsonArray.getInt(0);
System.out.println("數組a的第一個元素:"+n1);
int n2 = jsonArray.getInt(1);
System.out.println("數組a的第二個元素:"+n1);
}catch (JSONException e){
e.printStackTrace();
}
}
}
運行結果:
{"a":[1,2,3],"name":"tony","age":30}
name : tony
age : 30
數組a的第一個元素:1
數組a的第二個元素:1
以上內容僅供參考學習,如有侵權請聯繫我刪除!
如果這篇文章對您有幫助,左下角的大拇指就是對博主最大的鼓勵。
您的鼓勵就是博主最大的動力!