Ответ 1
в С#:
var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = jsonSerializer.Serialize(yourCustomObject);
Надеюсь, мне не нужно изобретать колесо здесь, но кто-нибудь знает, есть ли класс на С#, подобный тому, который был предоставлен Adobe для AS3, для преобразования общего объекта в строку JSON?
Например, когда я кодирую массив объектов.
new JSONEncoder(arr).getString();
Вывод:
[
{"type":"mobile","number":"02-8988-5566"},
{"type":"mobile","number":"02-8988-5566"}
]
в С#:
var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = jsonSerializer.Serialize(yourCustomObject);
Я рекомендую использовать Json.NET. Это не часть .Net основных библиотек, но она очень широко используется, в том числе многими продуктами Microsoft. Кроме того, это самый популярный пакет nuget. И это проще использовать, чем JavaScriptSerializer
и более эффективно.
var jsonString = JsonConvert.SerializeObject(someObjet);
var myObject = JsonConvert.DeserializeObject<MyType>(jsonString);
Следующие методы работают хорошо для меня (используя 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);
}
Отметьте DataContractJsonSerializer.
Используйте DataContractJsonSerializer для сериализации и десериализации данных в формате JavaScript Object Notation (JSON). Этот механизм сериализации преобразует данные JSON в экземпляры типов .NET Framework и обратно в данные JSON.