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對象