国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JAVA & JSON詳解

2019-11-15 01:16:28
字體:
來源:轉載
供稿:網友
java & JSON詳解JSON定義

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于ECMAScript的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C、C++、C#、Java、Javascript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成(網絡傳輸速率)。

JSON用途
  • 使用基于JavaScript的應用程序,其中包括瀏覽器擴展和網站

  • 使用JSON格式序列化和結構化的數據傳輸網絡連接

  • 這主要用于服務器和Web應用程序之間的數據傳輸

  • Web服務和API采用JSON格式提供公共數據

  • 它可以用來與現代編程語言

JSON的特點
  • 易于讀寫JSON

  • 輕量級的基于文本的交換格式

  • 獨立語言

JSON 語法規則JSON 語法是 JavaScript 對象表示語法的子集。
  • 數據在鍵值對中
  • 數據由逗號分隔
  • 花括號保存對象
  • 方括號保存數組
JSON 名稱/值對JSON 數據的書寫格式是:名稱/值對。名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在后面(同樣在雙引號中),中間用冒號隔開:
{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}
  JSON格式支持的數據類型有以下:
類型描述
Number在JavaScript中的雙精度浮點格式
String雙引號的反斜杠轉義的Unicode
Booleantrue 或 false
Array值的有序序列
Value它可以是一個字符串,一個數字,真的還是假(true/false),空(null)等
Object無序集合鍵值對
Whitespace可以使用任何一對中的令牌
nullempty

以下轉自:易百教程網

JSON和Java實體之間的映射

JSON.simple實體映射從左側向右側解碼或解析,并映射實體從右側到左側編碼。

JSONJava
stringjava.lang.String
numberjava.lang.Number
true|falseava.lang.Boolean
nullnull
arrayjava.util.List
objectjava.util.Map

雖然解碼,默認 java.util.List的具體類是具體類 org.json.simple.JSONArray 和默認 java.util.Map 是org.json.simple.JSONObject。

下面是一個簡單的例子來編碼JSONObject使用Java的JSON對象的一個子類的java.util.HashMap 無序。如果您需要嚴格的順序元素使用方法JSONValue.toJSONString(映射)有序映射實現作為 java.util.LinkedHashMap等。

import org.json.simple.JSONObject;class JsonEncodeDemo {   public static void main(String[] args)    {      JSONObject obj = new JSONObject();      obj.put("name", "foo");      obj.put("num", new Integer(100));      obj.put("balance", new Double(1000.21));      obj.put("is_vip", new Boolean(true));      System.out.PRint(obj);   }}

  

雖然上述程序的編譯和執行,這將產生以下結果:

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

以下是另一個例子,它顯示了使用Java的JSONObject 的 JSON對象流:

import org.json.simple.JSONObject;class JsonEncodeDemo {   public static void main(String[] args)    {      JSONObject obj = new JSONObject();      obj.put("name","foo");      obj.put("num",new Integer(100));      obj.put("balance",new Double(1000.21));      obj.put("is_vip",new Boolean(true));      StringWriter out = new StringWriter();      obj.writeJSONString(out);            String jsonText = out.toString();      System.out.print(jsonText);   }} 

雖然上述程序的編譯和執行,這將產生以下結果:

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"} 
在Java的JSON解碼

下面的例子利用的JSONObject 和JSONArray JSONObject 是一個java.util.Map JSONArray是一個java.util.List,所以可以對其進行訪問Map 和List 的標準操作。

import org.json.simple.JSONObject;import org.json.simple.JSONArray;import org.json.simple.parser.ParseException;import org.json.simple.parser.JSONParser;class JsonDecodeDemo {   public static void main(String[] args)    {      JSONParser parser=new JSONParser();      String s = "[0,{/"1/":{/"2/":{/"3/":{/"4/":[5,{/"6/":7}]}}}}]";      try{         Object obj = parser.parse(s);         JSONArray array = (JSONArray)obj;         System.out.println("The 2nd element of array");         System.out.println(array.get(1));         System.out.println();         JSONObject obj2 = (JSONObject)array.get(1);         System.out.println("Field /"1/"");         System.out.println(obj2.get("1"));             s = "{}";         obj = parser.parse(s);         System.out.println(obj);         s= "[5,]";         obj = parser.parse(s);         System.out.println(obj);         s= "[5,,2]";         obj = parser.parse(s);         System.out.println(obj);      }catch(ParseException pe){         System.out.println("position: " + pe.getPosition());         System.out.println(pe);      }   }}

雖然上述程序的編譯和執行,這將產生以下結果:

The 2nd element of array{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}Field "1"{"2":{"3":{"4":[5,{"6":7}]}}}{}[5][5,2]

上一篇:Plus One

下一篇:[LeetCode] Symmetric Tree

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正阳县| 辰溪县| 辉南县| 聂拉木县| 商河县| 罗田县| 龙井市| 东乡族自治县| 余干县| 襄垣县| 凌源市| 莱阳市| 东阿县| 广南县| 高陵县| 奎屯市| 澎湖县| 东辽县| 金山区| 兴仁县| 富阳市| 望都县| 庄浪县| 嘉义县| 邓州市| 台山市| 汾西县| 夹江县| 遂宁市| 新津县| 西林县| 财经| 浑源县| 桂阳县| 万源市| 仙桃市| 介休市| 杭州市| 淮南市| 泉州市| 郯城县|