JSON資料格式

來源:互聯網
上載者:User

 JSON是一種輕量級的資料交換格式。它是基於javascript文法標準的一個子集。JSON是一種輕量級的資料交換格式。JSON採用完全獨立於語言的文字格式設定,可以很容易在各種網路、平台和程式之間傳輸。JSON的文法很簡單,易於人閱讀和編寫,同時也易於機器解析和產生。        要想熟練的操作json資料,就要先瞭解json資料:        JSON的規則很簡單:對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括弧)開始,“}”(右括弧)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’對”之間使用“,”(逗號)分隔。         規則如下:1、映射用冒號(“:)表示。名稱:值2、並列的資料之間用逗號(“,”)分隔。名稱1:值1,名稱2:值23、映射的集合(對象)用大括弧(“{}”)表示。{名稱1:值1,名稱2:值2}4、並列資料的集合(數組)用方括弧(“[]”)表示。[{名稱1:值,名稱2:值2},{名稱1:值,名稱2:值2}]5、元素值可具有的類型:string,number, object, array, true, false, null注意:1、JSON 用冒號(而不是等號)來賦值。每一條指派陳述式用逗號分開。整個對象用大括弧封裝起來。可用大括弧分級嵌套資料。             2、對象描述中儲存的資料可以是字串,數字或者布爾值。對象描述也可儲存函數,那就是對象的方法。6、JSON主要有兩種資料結構(1)由key–value對組成的資料結構。這種資料結構在不同的語言中有不同的實現.例如:在javascript中是一個對象.而在java中是一種Map結構,c語言中是struct,其它的語言中可能為record、 hash table 等。(2)有序集合、這種資料結構在不同語言中可能有list、vertor、數組和序列等實現。7、C#中json資料格式的處理List<T>轉Json[csharp]  public static string Obj2Json<T>(T data)  {      try      {          System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(data.GetType());          using (MemoryStream ms = new MemoryStream())          {              serializer.WriteObject(ms, data);              return Encoding.UTF8.GetString(ms.ToArray());          }      }      catch      {          return null;      }  }   Json轉List<T>[csharp]  public static Object Json2Obj(String json,Type t)  {      try      {          System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);          using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))          {                            return  serializer.ReadObject(ms);          }      }      catch      {          return null;      }  }   DataTable 轉Json[csharp]  public static string DataTable2Json(DataTable dt)  {      if (dt.Rows.Count == 0)      {          return "";      }         StringBuilder jsonBuilder = new StringBuilder();      // jsonBuilder.Append("{");       //jsonBuilder.Append(dt.TableName.ToString());        jsonBuilder.Append("[");//轉換成多個model的形式      for (int i = 0; i < dt.Rows.Count; i++)      {          jsonBuilder.Append("{");          for (int j = 0; j < dt.Columns.Count; j++)          {              jsonBuilder.Append("\"");              jsonBuilder.Append(dt.Columns[j].ColumnName);              jsonBuilder.Append("\":\"");              jsonBuilder.Append(dt.Rows[i][j].ToString());              jsonBuilder.Append("\",");          }          jsonBuilder.Remove(jsonBuilder.Length - 1, 1);          jsonBuilder.Append("},");      }      jsonBuilder.Remove(jsonBuilder.Length - 1, 1);      jsonBuilder.Append("]");      //  jsonBuilder.Append("}");      return jsonBuilder.ToString();  }   單個對象轉JSON [csharp]  public static T Json2Obj<T>(string json)   {      T obj = Activator.CreateInstance<T>();      using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)))      {          System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());          return (T)serializer.ReadObject(ms);      }  }   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.