`

C# 解析JSON

 
阅读更多

需求:如以下JSON字符串

[{"Name": "首  页", "LinkAddr": "", "Items": [{ "Name": "首页一", "LinkAddr": "http://www.baidu.com"}]},{"Name": "公司简介", "LinkAddr": "", "Items": [{ "Name": "公司简介一", "LinkAddr": "http://www.taobao.com" }, { "Name": "公司简介二", "LinkAddr": "http://www.cubes.com.cn"}]},{"Name": "翻译园地", "LinkAddr": ""},{"Name": "学员风采", "LinkAddr": ""},{"Name": "下载中心", "LinkAddr": ""},{"Name": "咨询留言", "LinkAddr": ""},{"Name": "乘车路线", "LinkAddr": ""}]

 

定义实体对象

 

[DataContract]
public class DataItemInfo
{
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    public string LinkAddr { get; set; }

    [DataMember]
    public List<DataItemInfo> Items { get; set; }
}

 

如果将以上字符串转化为实体对象,或是将实体对象转化为以上的字符串

 

添加辅助类:

// using System.Runtime.Serialization.Json;

public static class JSON
{
    public static List<T> ToList<T>(string jsonString)
    {
        using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
        {
            return (List<T>)new DataContractJsonSerializer(typeof(List<T>)).ReadObject(ms);
        }
    }

    public static string ToString(object jsonObject)
    {
        using (var ms = new MemoryStream())
        {
            new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject);
            return Encoding.UTF8.GetString(ms.ToArray());
        }
    }
}

 

相应操作:

 

string JsonData = Request.QueryString["JsonData"];

// 将JSON字符串转化为实体对象
//List<DataItemInfo> listItem = JSON.ToList<DataItemInfo>(JsonData);

// 将实体对象转化为JSON字符串
//JsonData=JSON.ToString(listItem);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics