整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          編程語言中的數(shù)據(jù)交換格式-JSON

          SON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,常用于在不同平臺之間傳輸數(shù)據(jù)。它的設(shè)計靈感來自于 JavaScript 中的對象字面量表示法,但已成為一種獨(dú)立于編程語言的通用數(shù)據(jù)格式。JSON 的主要特點(diǎn)包括:

          1.易讀性:JSON 使用簡潔明了的文本表示數(shù)據(jù)結(jié)構(gòu),易于人類閱讀和編寫。

          2.易解析性:JSON 在大多數(shù)編程語言中都有內(nèi)置的解析器和序列化器,因此易于在不同平臺和環(huán)境中處理和解釋。

          3.數(shù)據(jù)類型:JSON 支持多種數(shù)據(jù)類型,包括字符串、數(shù)字、布爾值、數(shù)組、對象和 null。

          4.靈活性:JSON 具有很高的靈活性,可以表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu),包括嵌套對象和數(shù)組。

          5.可擴(kuò)展性:JSON 支持用戶定義的數(shù)據(jù)類型和擴(kuò)展,使得它可以滿足各種不同的需求。

          JSON 的基本語法包括:

          - 鍵值對:使用冒號 : 分隔鍵和值。

          - 對象:使用花括號 {} 表示對象,對象中的每個成員由鍵值對組成,鍵和值之間使用冒號分隔,成員之間使用逗號分隔。

          - 數(shù)組:使用方括號 [] 表示數(shù)組,數(shù)組中的每個元素可以是任意類型的值,元素之間使用逗號分隔。

          - 字符串:使用雙引號 " 包裹字符串值。

          例如,一個簡單的 JSON 對象可能如下所示:

          {

          "name": "John Doe",

          "age": 30,

          "hobbies": ["hiking", "reading", "photography"],

          "address": {

          "city": "New York",

          "zip": "10001"

          }

          }

          JSON 技術(shù)被廣泛應(yīng)用于 Web 開發(fā)、移動應(yīng)用、數(shù)據(jù)交換等領(lǐng)域,它是現(xiàn)代應(yīng)用程序中常見的數(shù)據(jù)交換格式之一。JSON 的簡潔性、易用性和通用性使得它成為了數(shù)據(jù)交換和存儲的重要工具。#為一年后的小目標(biāo)不斷努力奮斗#

          ,JSON(JavaScript Object Notation):是一種輕量級的數(shù)據(jù)交互格式,基于 ECMAScript 的一個子集,采用完全獨(dú)立于編程語言的文本格式來存儲和表示數(shù)據(jù)。在JSON出現(xiàn)之前,常用XML來傳遞數(shù)據(jù),XML是一種純文本格式,適合在網(wǎng)絡(luò)上交換數(shù)據(jù)。JSON 比 XML 更小、更快,更易解析,JavaScript原生支持JSON。

          2,JSON語法結(jié)構(gòu):JSON數(shù)據(jù)由鍵值對組成,每個鍵值對之間用逗號分隔,整個數(shù)據(jù)以大括號 {} 包裹表示一個對象,或者以中括號 [] 包裹表示一個數(shù)組。基本語法結(jié)構(gòu)為:

          對象(Object):{} 包裹,鍵對應(yīng)的值之間使用冒號,健值對之間用逗號。如

          { "name": "張3", "age": 30 }


          數(shù)組(Array): [] 包裹,元素之間使用逗號分隔。如:

          [ "apple", "banana", "orange" ]

          [ {"name": "張3", "age": 30}, {"name": "李4", "age": 25} ]

          3,規(guī)則:數(shù)據(jù)在名稱/值對中,數(shù)據(jù)由逗號分隔,大括號保存對象,中括號保存數(shù)組。

          4,JSON值:數(shù)字(整數(shù)/浮點(diǎn)數(shù))、字符串(雙引號)、布爾值(true/false)、數(shù)組(中括號)、對象(大括號)、null。

          么是 JSON?
          JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫。同時也易于機(jī)器解析和生成。
          JSON 采用完全獨(dú)立于語言的文本格式,而且很多語言都提供了對 json 的支持(包括 C, C++, C#, Java, JavaScript, Perl, Python 等)。 這樣就使得 JSON 成為理想的數(shù)據(jù)交換格式。
          json 是一種輕量級的數(shù)據(jù)交換格式。
          輕量級指的是跟 xml 做比較。
          數(shù)據(jù)交換指的是客戶端和服務(wù)器之間業(yè)務(wù)數(shù)據(jù)的傳遞格式。

          JSON 在JavaScript 中的使用。

          json 的定義

          json 是由鍵值對組成,并且由花括號(大括號)包圍。每個鍵由引號引起來,鍵和值之間使用冒號進(jìn)行分隔, 多組鍵值對之間進(jìn)行逗號進(jìn)行分隔。
          json 定義示例:

          var jsonObj = {
            "key1":12,
            "key2":"abc",
            "key3":true,
            "key4":[11,"arr",false],
            "key5":{
            "key5_1" : 551,
            "key5_2" : "key5_2_value"
            },
            "key6":[{
            "key6_1_1":6611,
            "key6_1_2":"key6_1_2_value"
            },{
            "key6_2_1":6621,
            "key6_2_2":"key6_2_2_value"
            }]
          };
          

          json 的訪問

          json 本身是一個對象。
          json 中的 key 我們可以理解為是對象中的一個屬性。
          json 中的 key 訪問就跟訪問對象的屬性一樣: json 對象.key
          json 訪問示例:

          alert(typeof(jsonObj));// object json 就是一個對象
          alert(jsonObj.key1); //12
          alert(jsonObj.key2); // abc
          alert(jsonObj.key3); // true
          alert(jsonObj.key4);// 得到數(shù)組 [11,"arr",false]
          // json 中 數(shù)組值的遍歷
          for(var i = 0; i < jsonObj.key4.length; i++) {
            alert(jsonObj.key4[i]);
          }
          alert(jsonObj.key5.key5_1);//551
          alert(jsonObj.key5.key5_2);//key5_2_value
          alert( jsonObj.key6 );// 得到 json 數(shù)組
          // 取出來每一個元素都是 json 對象
          var jsonItem = jsonObj.key6[0];
          // alert( jsonItem.key6_1_1 ); //6611
          alert( jsonItem.key6_1_2 ); //key6_1_2_value
          

          json 的兩個常用方法

          json 的存在有兩種形式。
          一種是:對象的形式存在,我們叫它 json 對象。
          一種是:字符串的形式存在,我們叫它 json 字符串。
          一般我們要操作 json 中的數(shù)據(jù)的時候,需要 json 對象的格式。
          一般我們要在客戶端和服務(wù)器之間進(jìn)行數(shù)據(jù)交換的時候,使用 json 字符串。
          JSON.stringify() 把 json 對象轉(zhuǎn)換成為 json 字符串
          JSON.parse() 把 json 字符串轉(zhuǎn)換成為 json 對象
          示例代碼:

          // 把 json 對象轉(zhuǎn)換成為 json 字符串
          var jsonObjString = JSON.stringify(jsonObj); // 特別像 Java 中對象的 toString
          alert(jsonObjString)
          // 把 json 字符串。轉(zhuǎn)換成為 json 對象
          var jsonObj2 = JSON.parse(jsonObjString);
          alert(jsonObj2.key1);// 12
          alert(jsonObj2.key2);// abc
          

          JSON 在 在 java 中的使用

          javaBean 和 和 json 的互轉(zhuǎn)

          @Test
          public void test1(){
            Person person = new Person(1," 愷龍!");
            // 創(chuàng)建 Gson 對象實(shí)例
            Gson gson = new Gson();
            // toJson 方法可以把 java 對象轉(zhuǎn)換成為 json 字符串
            String personJsonString = gson.toJson(person);
            System.out.println(personJsonString);
            // fromJson 把 json 字符串轉(zhuǎn)換回 Java 對象
            // 第一個參數(shù)是 json 字符串
            // 第二個參數(shù)是轉(zhuǎn)換回去的 Java 對象類型
            Person person1 = gson.fromJson(personJsonString, Person.class);
            System.out.println(person1);
          }
          

          List 和 和 json 的互轉(zhuǎn)

          @Test
          public void test2() {
            List<Person> personList = new ArrayList<>();
            personList.add(new Person(1, " 張三"));
            personList.add(new Person(2, " 李四"));
            Gson gson = new Gson();
            // 把 List 轉(zhuǎn)換為 json 字符串
            String personListJsonString = gson.toJson(personList);
            System.out.println(personListJsonString);
            List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType());
            System.out.println(list);
            Person person = list.get(0);
            System.out.println(person);
          }
          

          map 和 和 json 的互轉(zhuǎn)

          @Test
          public void test3(){
            Map<Integer,Person> personMap = new HashMap<>();
            personMap.put(1, new Person(1, " 張三"));
            personMap.put(2, new Person(2, " 李四"));
            Gson gson = new Gson();
            // 把 map 集合轉(zhuǎn)換成為 json 字符串
            String personMapJsonString = gson.toJson(personMap);
            System.out.println(personMapJsonString);
            // Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString, new
            PersonMapType().getType());
            Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString, new
            TypeToken<HashMap<Integer,Person>>(){}.getType());
            System.out.println(personMap2);
            Person p = personMap2.get(1);
            System.out.println(p);
          }
          

          歡迎關(guān)注公眾號:愚生淺末。


          主站蜘蛛池模板: 日韩视频一区二区| 波霸影院一区二区| 免费高清av一区二区三区| 日本免费精品一区二区三区| 国产在线一区二区综合免费视频| 四虎一区二区成人免费影院网址| 人妖在线精品一区二区三区| 亚洲日本一区二区三区在线| 上原亚衣一区二区在线观看| 一区二区三区免费在线视频| 日本一区二区三区日本免费| 亚洲字幕AV一区二区三区四区 | 日韩精品中文字幕视频一区 | 国模无码人体一区二区| 一区二区三区电影网| 免费国产在线精品一区| 亚洲av乱码一区二区三区按摩| 激情亚洲一区国产精品| 精品无码一区二区三区电影| 免费无码一区二区三区| 麻豆AV一区二区三区久久| 国产精品毛片一区二区三区| 亚洲AV综合色一区二区三区| 蜜桃传媒视频麻豆第一区| 亚洲日韩激情无码一区| 久久久精品人妻一区二区三区 | 一区二区三区杨幂在线观看| 日本精品一区二区三区在线视频| 色综合视频一区二区三区| www.亚洲一区| 日韩制服国产精品一区| 无码人妻AⅤ一区二区三区 | 在线视频一区二区三区四区| 国产精品一区电影| 国产美女av在线一区| 中文字幕一区二区人妻性色| 久久国产精品亚洲一区二区| 国内精品一区二区三区东京 | 久久精品动漫一区二区三区| 国产精品福利一区二区久久| 日本精品视频一区二区三区|