C#操作Json字符串:C#.Net解析Json數(shù)組C#.Net解析json對象
使用開源的類庫Newtonsoft.Json(可到網(wǎng)上自行下載)。 下載后直接引用DLL就能用。
通??梢允褂肑Object, JsonReader, JsonWriter處理。
這種方式最通用,也最靈活,可以隨時修改不爽的地方。
(1)使用JsonReader讀Json字符串:
string jsonText =@"{""input"" : ""value"",""output"" : ""result""}"; JsonReader reader = new JsonTextReader(newStringReader(jsonText)); while (reader.Read()) { Console.WriteLine(reader.TokenType "\t\t" reader.ValueType "\t\t" reader.Value); }(2)使用JsonWriter寫字符串:
StringWriter sw = new StringWriter(); JsonWriter writer = new JsonTextWriter(sw); writer.WriteStartObject(); writer.WritePropertyName("input"); writer.WriteValue("value"); writer.WritePropertyName("output"); writer.WriteValue("result"); writer.WriteEndObject(); writer.Flush(); string jsonText =sw.GetStringBuilder().ToString(); Console.WriteLine(jsonText);(3)使用JObject讀寫字符串:
JObject jo = JObject.Parse(jsonText); string[] values =jo.Properties().Select(item => item.Value.ToString()).ToArray();(4)使用JsonSerializer讀寫對象(基于JsonWriter與JsonReader): 數(shù)組型數(shù)據(jù)
string jsonArrayText1 ="[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]"; JArray ja =(JArray)JsonConvert.DeserializeObject(jsonArrayText1); string ja1a =ja[1]["a"].ToString(); //或者 JObject o = (JObject)ja[1]; string oa = o["a"].ToString();
以上代碼的用法你看懂了嗎?是不是感覺有點麻煩,
下面樓主為大家推薦一下JsonHelper幫助類庫,只需要一行代碼就能搞定復雜的json轉換
輕松實現(xiàn) json序列化和json反序列化
JsonHelper.cs類庫源碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Script.Serialization; namespace Helper { public class JsonHelper { /// <summary> /// json反序列化 /// </summary> /// <param name="input"></param> /// <returns></returns> public static object jsonDes<T>(string input) { JavaScriptSerializer jss = new JavaScriptSerializer(); return jss.Deserialize<T>(input); } /// <summary> /// json序列化 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string json(object obj) { JavaScriptSerializer jss = new JavaScriptSerializer(); return jss.Serialize(obj); } } }JsonHelper基本用法
C#操作Json對象
序列化你的Json字符串對象(要先給實體賦值才能看到數(shù)據(jù)哦 )
public IDInfo idinfo =new IDInfo(); string jsonstr=JsonHelper.json(idinfo);
反序列化Json對象
public IDInfo idinfo =new IDInfo(); idinfo = (IDInfo)JsonHelper.jsonDes<IDInfo>(此處是你的Json字符串對象);
C#操作Json數(shù)組
序列化你的Json字符串數(shù)組(要先給實體List賦值才能看到數(shù)據(jù)哦 )
public List<IDInfo> idlist =new List<IDInfo>(); string jsonstr=JsonHelper.json(idlist);
反序列化Json數(shù)組
public List<IDInfo> idilist=new List<IDInfo>(); idlist = (List<IDInfo>)JsonHelper.jsonDes<List<IDInfo>>(此處是你的Json字符串數(shù)組);
有什么不懂得地方可以加群討論@群主哦
原文鏈接:C#.Net解析Json數(shù)組.Net解析json對象