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

发布时间:2018-06-30 18:46:42   来源:文档文库   
字号:

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

注意:1JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。

             2、对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。

 

6JSON主要有两种数据结构

1)由key–value对组成的数据结构。这种数据结构在不同的语言中有不同的实现.

例如:在javascript中是一个对象.而在java中是一种Map结构,c语言中是struct,其它的语言中可能为record hash table 等。

2)有序集合、这种数据结构在不同语言中可能有listvertor、数组和序列等实现。

 

7C#json数据格式的处理

ListJson

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

        }  

    }  

    catch  

    {  

        return null;  

    }  

}  

 

JsonList

[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(string json)   

{  

    T obj = Activator.CreateInstance();  

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

    }  

}  

本文来源:https://www.2haoxitong.net/k/doc/ff352ca883c4bb4cf6ecd132.html

《标准JSON格式定义与解析注意点.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式