Кодировать объект в JSON - PullRequest
       3

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

16 голосов
/ 18 февраля 2010

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

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

new JSONEncoder(arr).getString();

Выход:

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

Ответы [ 4 ]

30 голосов
/ 18 февраля 2010

в C #:

var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            string json = jsonSerializer.Serialize(yourCustomObject);
8 голосов
/ 11 сентября 2014

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

var jsonString = JsonConvert.SerializeObject(someObjet);

var myObject = JsonConvert.DeserializeObject<MyType>(jsonString);
3 голосов
/ 18 февраля 2010

Проверьте это DataContractJsonSerializer .

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

3 голосов
/ 18 февраля 2010

Для меня хорошо работают следующие методы (используя 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...