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)使用JsonSerializer读写对象(基于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 jsonstr=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 jsonstr=JsonHelper.json(idlist);




反序列化Json数组



 public List<IDInfo> idilist=new List<IDInfo>();
idlist = (List<IDInfo>)JsonHelper.jsonDes<List<IDInfo>>(此处是你的Json字符串数组);



有什么不懂得地方可以加群讨论@群主哦