标准JSON格式定义与解析注意点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JSON是一种轻量级的数据交换格式。它是基于javascript语法标准的一个子集。JSON是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON 的语法很简单,...

JSON是一种轻量级的数据交换格式。它是基于javascript语法标准的一个子集。JSON 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。

要想熟练的操作json数据,就要先了解json数据:

JSON的规则很简单:对象是一个无序的“…名称/值‟对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“…名称/值‟对”之间使用“,”(逗号)分隔。

规则如下:

1、映射用冒号(“:)表示。名称:值

2、并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2

3、映射的集合(对象)用大括号(“{}”)表示。

{

名称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转Json

[csharp]

public static string Obj2Json(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

[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());

相关文档
最新文档