我有这样的课程:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
我想将一个 Lad
对象变成一个JSON字符串,如下所示:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(没有格式化) . 我找到了this link,但它使用的是一个不在.NET 4中的命名空间 . 我也听说过JSON.NET,但他们的网站目前似乎已经关闭了,我并不热衷于使用外部DLL文件 . 除了手动创建JSON字符串编写器之外还有其他选项吗?
14 回答
使用Json.Net库,您可以从Nuget Packet Manager下载它 .
Serializing to Json String:
Deserializing to Object:
使用this tools生成C#类,然后使用此代码序列化您的对象
这里真的很有用:http://csharp2json.io/
使用
DataContractJsonSerializer
类:MSDN1,MSDN2 .我的例子:HERE .
与
JavaScriptSerializer
不同,它还可以安全地从JSON字符串反序列化对象 . 但我个人仍然更喜欢Json.NET .Since we all love one liners
...这个依赖于Newtonsoft NuGet包,它比普通的串行器更受欢迎 .
文件: Serializing and Deserializing JSON
注意使用正确的属性创建您的类:
根据示例C#示例后跟vb.net exmpale,使用<Serializable>属性创建此类
C#
VBNET EXAMPLE
结束命名空间
第二步是创建一个简单的测试数据,如下所示:
C#
VB.NET
这是最终的结果:
请记住添加对system.web.extension.dll的引用,以实现您的目标 .
我会投票支持ServiceStack的JSON Serializer:
它也是.NET最快的JSON序列化程序:http://www.servicestack.net/benchmarks/
Wooou!使用JSON框架真的更好:)
这是我使用Json.NET(http://james.newtonking.com/json)的例子:
考试:
结果:
现在我将实现构造方法,该方法将接收JSON字符串并填充类的字段 .
如果它们不是很大,那么你的情况可能就是将它作为Json输出 . 这也使得所有平台都具有便携性
如果您在ASP.NET MVC Web控制器中,它就像下面这样简单:
不敢相信没有人提到过这一点 .
这很简单,也适用于动态对象(类型对象):
您可以使用JavaScriptSerializer类(添加对
System.Web.Extensions
的引用):一个完整的例子:
使用以下代码将XML转换为JSON .
Serializer
Object
Implementation
Output