将对象编码为JSON

时间:2010-02-18 09:09:25

标签: c# json

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

例如,当我编码一个对象数组时。

new JSONEncoder(arr).getString();

输出:

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

4 个答案:

答案 0 :(得分:30)

在C#中

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数据