C#操作Json字符串:C#.Net解析Json数组C#.Net解析json对象
使用开源的类库Newtonsoft.Json(可到网上自行下载)。 下载后直接引用DLL就能用。
通常可以使用JObject, 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)使用yunjsonerializer读写对象(基于JsonWriter与JsonReader): 数组型数据
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转换
轻松实现 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字符串对象(要先给实体赋值才能看到数据哦 )
public IDInfo idinfo =new IDInfo(); string yunjsontr=JsonHelper.json(idinfo);
反序列化Json对象
public IDInfo idinfo =new IDInfo(); idinfo = (IDInfo)JsonHelper.jsonDes<IDInfo>(此处是你的Json字符串对象);
C#操作Json数组
序列化你的Json字符串数组(要先给实体List赋值才能看到数据哦 )
public List<IDInfo> idlist =new List<IDInfo>(); string yunjsontr=JsonHelper.json(idlist);
反序列化Json数组
public List<IDInfo> idilist=new List<IDInfo>(); idlist = (List<IDInfo>)JsonHelper.jsonDes<List<IDInfo>>(此处是你的Json字符串数组);
有什么不懂得地方可以加群讨论@群主哦