分享

C#中读取json数据

 修行的嘟嘟 2011-07-11
  1. //先在项目中添加System.Web.Extensions引用
  2. //using System.Web.Script.Serialization;
  3. JavaScriptSerializer serializer = new JavaScriptSerializer();
  4. Dictionary<stringobject> json = (Dictionary<stringobject>)serializer.DeserializeObject(
  5.     "{name: 'zswang', forum: 'c#'}");
  6. object value;
  7. if (json.TryGetValue("name"out value))
  8.     Console.WriteLine(value); // 输出:zswang
 System.Runtime.Serialization 是不够的,还要添加 System.ServiceModel和System.ServiceModel.Web的引用System.Runtime.Serialization.Json 出来了,可以开始对JSON字符串转为实体了。
/// <summary>
       
/// Serialize T to string
       
/// </summary>
       
/// <param name="item"></param>
       
/// <returns></returns>
        public static string Serialize<T>(T item)
        {
           
if (item == null) return string.Empty;

            var serializer
= new DataContractJsonSerializer(item.GetType());

           
using (var ms = new MemoryStream())
            {
                serializer.WriteObject(ms, item);

                var sb
= new StringBuilder();
                sb.Append(Encoding.UTF8.GetString(ms.ToArray()));

               
return sb.ToString();
            }
        }

       
/// <summary>
       
/// Deserialize string back to T
       
/// </summary>
       
/// <param name="jsonString"></param>
       
/// <returns></returns>
        public static T Deserialize<T>(string jsonString)
        {
           
if (string.IsNullOrEmpty(jsonString)) return default(T);

            var ser
= new DataContractJsonSerializer(typeof(T));

           
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                T jsonObject
= (T)ser.ReadObject(ms);
               
return jsonObject;
            }
        }
 
Json序列化和反序列化方法
引用空间System.Runtime.Serialization和System.Runtime.Serialization.Json
publicstaticstring ToJsJson(thisobject item)
        {

            DataContractJsonSerializer serializer =new DataContractJsonSerializer(item.GetType());

using (MemoryStream ms =new MemoryStream())
            {

                serializer.WriteObject(ms, item);

                StringBuilder sb =new StringBuilder();

                sb.Append(Encoding.UTF8.GetString(ms.ToArray()));

return sb.ToString();

            }

        }

///<summary>
//////</summary>
publicstatic T FromJsonTo<T>(thisstring jsonString)
        {

            DataContractJsonSerializer ser =new DataContractJsonSerializer(typeof(T));

            MemoryStream ms =new MemoryStream(Encoding.UTF8.GetBytes(jsonString));

            T jsonObject = (T)ser.ReadObject(ms);

            ms.Close();

return 实体类
       }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约