JSON相關(guān)-創(chuàng)新互聯(lián)

一、什么是JSON

JSON(JavaScript?Object Notation, JS對象簡譜)是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫,可以在多種語言之間進行數(shù)據(jù)交換。

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的江華網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

JSON 比 XML 更小、更快,更易解析。

JSON 易于人閱讀和編寫。

C、Python、C++、Java、PHP、Go等編程語言都支持 JSON。

JSON是一個序列化的對象或數(shù)組。

1. JSON對象

{ 
    "name" : "小王",
    "age" : 23
}

2. JSON數(shù)組

整個是一個json數(shù)組

[
    {
        "name" : "小王",
        "age" : 23
    },
    {
        "name" : "小李",
        "age" : 25
    }
]

class1 也是一個json數(shù)組

{  
    "class1":  [
        {
            "name" : "小王",
            "age" : 23
        },
        {
            "name" : "小李",
            "age" : 25
        }
    ],
    "class2":  [
        {
            "name" : "小張",
            "age" : 24
        },
        {
            "name" : "小趙",
            "age" : 25
        }
    ],
}
二、JSON的用途

  • Java的序列化與反序列化:

序列化:Object -->Json

反序列化:Json-->Object

三、JSON的轉(zhuǎn)換

首先先明確幾種類型的定義:

Java/Json字符串、JsonObject、Java對象-map

轉(zhuǎn)換使用fastjson

1. Json/Java字符串:?String s = "{\"name\":\"小王\",\"age\":23}"; (帶轉(zhuǎn)義字符)

  • Java map對象轉(zhuǎn)Json字符串:JSON.toJSONString
String s = JSON.toJSONString(map);
  • JsonObject轉(zhuǎn)Json字符串:json.toJSONString
String s = json.toJSONString();

2. JsonObject:

  • 字符串轉(zhuǎn)?JsonObject:JSONObject.parseObject
JSONObject json = new JSONObject(new String(需要轉(zhuǎn)換的字符串));
JSONObject json = JSONObject.parseObject(new String(需要轉(zhuǎn)換的字符串));
  • Java對象轉(zhuǎn)JsonObject:JSON.toJSON
JSONObject s =  (JSONObject) JSON.toJSON(map);

3. Java Object:{"name":"小王","age":23} (不可存空)

Person p = new Person();
p.setName("小王");
p.setAge(23);
  • Json字符串轉(zhuǎn)Java對象:JSON.parseObject(s, XXX.class)
String s = " {\"name\":\"張三\",\"age\":20}";
  Map map = JSON.parseObject(s, Map.class);
  • JsonObject轉(zhuǎn)Java對象:jsonObject.toJavaObject(XXX.class);
Person person = jsonObject.toJavaObject(Person.class);

4. Java map對象:{name=小王, age=23}(可存空)

Mapmap = new HashMap();
map.put("name","小王");
map.put("age","23");

四、JSON的提取

1.?通過鍵從JSON對象中獲取JSON數(shù)組:JSONArray arr = json.getJSONArray(key);

Mapmap=new HashMap<>();
        ArrayListlist=new ArrayList();
        list.add(new Person("小王",23));
        list.add(new Person("小李","26"));
        list.add(new Person("小趙","25"));
        map.put("person",list);
        map.put("time",new Date());
        System.out.println(map);//
       JSONObject json = (JSONObject) JSON.toJSON(map);
        System.out.println(json);
        //把json字符串轉(zhuǎn)為數(shù)組
        JSONArray persons = json.getJSONArray("person");
        //遍歷數(shù)組
        for (int i = 0; i< persons.size(); i++) {
      JSONObject person = persons.getJSONObject(i);
      System.out.println(person);
      System.out.println(person.get("name");
    }

2.?JSONArray轉(zhuǎn)換成List集合:jsonArray.toJavaList(Object.class)

List attachFiles = jsonArray.toJavaList(AttachFile.class);

3.?JSON對象中設(shè)置鍵值對/獲取鍵值對

  • 設(shè)置鍵值對:jsonObject.put(key,value);
  • 獲取鍵值對:Object jsonObject.get(key)【String jsonObject.getString(key)】
  • 獲取鍵值對數(shù)量:int size = jsonObject.size();
  • 是否存在key值:boolean result = jsonObject.containsKey("name");
  • 根據(jù)key清除某一個鍵值對: object1.remove("name");

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:JSON相關(guān)-創(chuàng)新互聯(lián)
文章位置:http://muchs.cn/article14/csjjge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、全網(wǎng)營銷推廣、網(wǎng)站制作營銷型網(wǎng)站建設(shè)、網(wǎng)站維護靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)