C# 将对象编码为JSON

C# 将对象编码为JSON,c#,json,C#,Json,希望我不必在这里重新发明轮子,但有人知道C#中是否有一个类类似于Adobe for AS3提供的将通用对象转换为JSON字符串的类吗 例如,当我对一组对象进行编码时 new JSONEncoder(arr).getString(); 输出: [ {"type":"mobile","number":"02-8988-5566"}, {"type":"mobile","number":"02-8988-5566"} ] 以下方法对我很有效(使用): publicstatict F

希望我不必在这里重新发明轮子,但有人知道C#中是否有一个类类似于Adobe for AS3提供的将通用对象转换为JSON字符串的类吗

例如,当我对一组对象进行编码时

new JSONEncoder(arr).getString();
输出:

[
    {"type":"mobile","number":"02-8988-5566"},
    {"type":"mobile","number":"02-8988-5566"}
]

以下方法对我很有效(使用):

publicstatict FromJson(字符串输入)
{
JavaScriptSerializer serializer=新的JavaScriptSerializer();
返回序列化程序。反序列化(输入);
}
公共静态字符串ToJson(对象输入)
{
JavaScriptSerializer serializer=新的JavaScriptSerializer();
返回序列化程序。序列化(输入);
}
看看这个

使用DataContractJsonSerializer以JavaScript对象表示法(JSON)格式序列化和反序列化数据。此序列化引擎将JSON数据转换为.NET Framework类型的实例,然后再转换回JSON数据

在C#中:


我建议使用。它不是.Net核心库的一部分,但它的应用非常广泛,包括微软的许多产品。它也是最常用的单曲。而且它比
JavaScriptSerializer
更易于使用,而且效率更高

var jsonString = JsonConvert.SerializeObject(someObjet);

var myObject = JsonConvert.DeserializeObject<MyType>(jsonString);
var jsonString=JsonConvert.SerializeObject(someObjet); var myObject=JsonConvert.DeserializeObject(jsonString);
JavaScriptSerializer
使用起来很麻烦。您应该尝试将System.Web.Extensions添加到引用中,请参见[我相信它是最新版本中的“SerializeObject”而不是“Serialize”的可能副本我还必须在末尾添加
.ToString()
,否则会产生错误。
var myObject=JsonConvert.DeserializeObject(jsonString.ToString())
@guitarlass:这太奇怪了。jsonString从一开始就应该是一个字符串!是的,我甚至把它打印出来进行测试。但是我必须在反序列化之前转换它
var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            string json = jsonSerializer.Serialize(yourCustomObject);
var jsonString = JsonConvert.SerializeObject(someObjet);

var myObject = JsonConvert.DeserializeObject<MyType>(jsonString);