首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

C# 解析JSON实现种的实例

2013-10-25 
C# 解析JSON实现类的实例using Systemusing System.Collections.Genericusing System.Webusing System.

C# 解析JSON实现类的实例

using System;using System.Collections.Generic;using System.Web;using System.Runtime.Serialization;using System.IO;using System.Runtime.Serialization.Json; //添加引用System.Runtime.Serializationnamespace QAPITool{    public static class JSON    {        public static T parse<T>(string jsonString)        {            using (var ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonString)))            { return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms); }        }

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

 
上面这段代码是解析任何格式的JSON,返回一个类,当然前提是你首先新建一个类
 
下面来看看新建的类:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.Serialization;namespace QAPITool{    [Serializable]    [DataContract]    public class UserInfo    {        [DataMember]        public string errcode;        [DataMember]        public string msg;        [DataMember]        public string ret;        [DataMember]        public UDataInfo data;    }    [Serializable]    [DataContract]    public class UDataInfo    {        [DataMember]        public int hasnext;//0 月 1 无        [DataMember]        public Infoclass[] info;    }    [Serializable]    [DataContract]    public class Infoclass    {        [DataMember]        public string name;        [DataMember]        public string openid;        [DataMember]        public string nick;        [DataMember]        public string fansnum;        [DataMember]        public string idolnum;        [DataMember]        public int  sex;        [DataMember]        public string isvip;        [DataMember]        public string isfans;        [DataMember]        public string isidol;    }}

 
类的实例已经定义完成,最后我们只需要调用这个JSON,返回类即可:
 UserInfo ui = JSON.parse<UserInfo>(addResult);
记住:addResult必须是JSON格式的才能解析

热点排行