希望我不必在这里重新发明轮子但有人知道C#中是否有类似于Adobe为AS3提供的将通用对象转换为JSON字符串的类?
例如,当我编码一个对象数组时。
new JSONEncoder(arr).getString();
输出:
[
{"type":"mobile","number":"02-8988-5566"},
{"type":"mobile","number":"02-8988-5566"}
]
答案 0 :(得分:30)
:
var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = jsonSerializer.Serialize(yourCustomObject);
答案 1 :(得分:8)
我建议使用Json.NET。它不是.Net的核心库的一部分,但它被广泛使用,包括很多微软的产品。它也是最常用的nuget package。它比JavaScriptSerializer
更容易使用,效率更高。
var jsonString = JsonConvert.SerializeObject(someObjet);
var myObject = JsonConvert.DeserializeObject<MyType>(jsonString);
答案 2 :(得分:3)
以下方法适用于我(使用JavaScriptSerializer
):
public static T FromJson<T>(string input)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(input);
}
public static string ToJson(object input)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(input);
}
答案 3 :(得分:3)
请查看DataContractJsonSerializer。
使用DataContractJsonSerializer以JavaScript Object Notation(JSON)格式序列化和反序列化数据。此序列化引擎将JSON数据转换为.NET Framework类型的实例并返回到JSON数据