JSON 数据转换_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > JSON 数据转换

JSON 数据转换

 2013/7/10 22:14:53  M守护神  博客园  我要评论(0)
  • 摘要:JSON概述JSON(JavaScriptObjectNotation)JS对象符号,通常JSON和XML是二选一的,JSON的数据格式很类似于JavaScript的对象{"pets":{"name":"Jeffrey","species":"Giraffe"}}.NET原生方式进行数据转换usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Runtime
  • 标签:数据 JSON JS

 

  • JSON概述
     JSON(Java Script Object Notation)JS对象符号,通常JSON和XML是二选一的,JSON的数据格式很类似于JavaScript的对象
monospace; font-size: 12px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; padding: 0px;">{
  "pets": {
    "name": "Jeffrey",
    "species": "Giraffe"
  }
}
  • .NET原生方式进行数据转换
using System; using System.Collections.Generic; using System.Linq; using System.Text;   using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web;       public class JsonHelper     {         public static string ToJson<T>(T obj)         {             string result = String .Empty;             try             {                 System.Runtime.Serialization.Json. DataContractJsonSerializer serializer =                 new System.Runtime.Serialization.Json.DataContractJsonSerializer( typeof(T));                 using (System.IO.MemoryStream ms = new System.IO. MemoryStream())                 {                     serializer.WriteObject(ms, obj);                     result = System.Text. Encoding.UTF8.GetString(ms.ToArray());                 }             }             catch (Exception ex)             {                 throw ex;             }             return result;         }           public static string ToJsonFromByList<T>( List<T> vals)         {             System.Text. StringBuilder st = new System.Text.StringBuilder();             try             {                 System.Runtime.Serialization.Json. DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer (typeof(T));                   foreach (T city in vals)                 {                     using (System.IO.MemoryStream ms = new System.IO. MemoryStream())                     {                         s.WriteObject(ms, city);                         st.Append(System.Text. Encoding.UTF8.GetString(ms.ToArray()));                     }                 }             }             catch (Exception ex)             {                 throw ex;             }               return st.ToString();         }           public static T ParseFormByJson<T>(string jsonStr)         {             T obj = Activator.CreateInstance<T>();             using (System.IO.MemoryStream ms =             new System.IO.MemoryStream (System.Text.Encoding.UTF8.GetBytes(jsonStr)))             {                 System.Runtime.Serialization.Json. DataContractJsonSerializer serializer =                 new System.Runtime.Serialization.Json.DataContractJsonSerializer( typeof(T));                 return (T)serializer.ReadObject(ms);             }         }     }  
  • Newtonsoft.json组件方式进行数据转换
     采用Newtonsoft.json组件方式实现json数据的转换需要引用Newtonsoft.json组件。
    • 下载地址
      http://download.csdn.net/detail/aaakingwin/5726429
    • 简易方式
using System; using System.Collections.Generic; using System.Linq; using System.Text;   using Newtonsoft.Json;         public class JsonHelper     {         public static string ToJson<T>(T value)         {             return JsonConvert .SerializeObject(value,Formatting.None);         }           public static T FromJson<T>(string jsonText)         {             return JsonConvert .DeserializeObject<T>(jsonText); ;         }     }
    • 复杂可配置方式
using System; using System.Collections.Generic; using System.Linq; using System.Text;   using Newtonsoft.Json; using System.IO;      public static string ToJson<T>(T value)         {             Newtonsoft.Json. JsonSerializer json = new Newtonsoft.Json.JsonSerializer();             json.NullValueHandling = NullValueHandling.Ignore;             json.ObjectCreationHandling = Newtonsoft.Json. ObjectCreationHandling.Replace;             json.MissingMemberHandling = Newtonsoft.Json. MissingMemberHandling.Ignore;             json.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;             StringWriter sw = new StringWriter();             Newtonsoft.Json. JsonTextWriter writer = new JsonTextWriter(sw);             writer.Formatting = Formatting.None;             writer.QuoteChar = '"';             json.Serialize(writer, value);             string output = sw.ToString();             writer.Close();             sw.Close();             return output;         }                public static T FromJson<T>(string jsonText)         {             Newtonsoft.Json. JsonSerializer json = new Newtonsoft.Json.JsonSerializer();             json.NullValueHandling = Newtonsoft.Json. NullValueHandling.Ignore;             json.ObjectCreationHandling = Newtonsoft.Json. ObjectCreationHandling.Replace;             json.MissingMemberHandling = Newtonsoft.Json. MissingMemberHandling.Ignore;             json.ReferenceLoopHandling = Newtonsoft.Json. ReferenceLoopHandling.Ignore;             StringReader sr = new StringReader(jsonText);             Newtonsoft.Json. JsonTextReader reader = new JsonTextReader(sr);             T result = (T)json.Deserialize(reader, typeof(T));             reader.Close();             return result;         }
发表评论
用户名: 匿名