Подтвердить что ты не робот

Кодировать объект для JSON

Надеюсь, мне не нужно изобретать колесо здесь, но кто-нибудь знает, есть ли класс на С#, подобный тому, который был предоставлен Adobe для AS3, для преобразования общего объекта в строку JSON?

Например, когда я кодирую массив объектов.

new JSONEncoder(arr).getString();

Вывод:

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

Ответ 1

в С#:

var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            string json = jsonSerializer.Serialize(yourCustomObject);

Ответ 2

Я рекомендую использовать Json.NET. Это не часть .Net основных библиотек, но она очень широко используется, в том числе многими продуктами Microsoft. Кроме того, это самый популярный пакет nuget. И это проще использовать, чем JavaScriptSerializer и более эффективно.

var jsonString = JsonConvert.SerializeObject(someObjet);

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

Ответ 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);
}

Ответ 4

Отметьте DataContractJsonSerializer.

Используйте DataContractJsonSerializer для сериализации и десериализации данных в формате JavaScript Object Notation (JSON). Этот механизм сериализации преобразует данные JSON в экземпляры типов .NET Framework и обратно в данные JSON.