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字符串数组);
有什么不懂得地方可以加群讨论@群主哦