欢迎光临

木子屋

标题: JSON字符串转C#匿名对象工具

作者: dnawo

日期: 2014-12-16 01:07 PM

分类: Win编程

内容: 经常需在C#程序中使用第三方接口返回的JSON字符串，针对JSON写一个类反序列化太麻烦，Newtonsoft.Json有一个方法可以将JSON字符串转为C#匿名对象：
复制内容到剪贴板 程序代码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)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.745 ms

返回

标题: JSON字符串转C#匿名对象工具

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.745 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.776 ms

返回