public static T DeserializeAnonymousType<T>(string value, T anonymousTypeObject)那么问题就变成了怎么针对JSON写一个C#匿名对象,这简单多了:
using ICSharp.Newtonsoft.Json;
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var jsonString = "{'name':'小明','age':30,'fruits':['apple','orange','banana']}";
var anonymousObject = JsonConvert.DeserializeAnonymousType(jsonString, new { name = string.Empty, age = 0, fruits = new[] { "" } });
Console.WriteLine("name={0}, age={1}, fruits={2}", anonymousObject.name, anonymousObject.age, String.Join(",", anonymousObject.fruits));
Console.ReadLine();
}
}
}我们还可以直接反序列化为 JObject,然后通过索引器直接访问:
using ICSharp.Newtonsoft.Json;
using ICSharp.Newtonsoft.Json.Linq;
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var jsonString = "{'name':'小明','age':30,'fruits':['apple','orange','banana']}";
var anonymousObject = JsonConvert.DeserializeObject(jsonString) as JObject;
Console.WriteLine("name={0}, age={1}, fruits={2}", anonymousObject["name"], anonymousObject["age"], String.Join(",", anonymousObject["fruits"].ToObject<string[]>()));
Console.ReadLine();
}
}
}
JsonTool下载:http://www.mzwu.com/pic/201412/JsonTool.exe
评论(0)
暂无评论。