Парсинг JSON возражает против c#

Я пытаюсь использовать пример в этой ссылке http://sharpdevpt.blogspot.com/2009/10/deserialize-json-on-c.html?showComment=1265045828773#c2497312518008004159

Но мое использование компиляции привычки проекта JavaScriptConvert. DeserializeObject, пример говорит, что это из библиотеки .NET, кто-либо знает который?

Я знаю, что пример ниже использует Newtonsoft. Json....

5
задан van 1 February 2010 в 17:50
поделиться

5 ответов

Для простого способа десериализации http://blogs.msdn.com/rakkimk/archive/2009/01/ 30 / asp-net-json-serialization-and-deserialization.aspx

JavaScriptSerializer js = new JavaScriptSerializer();
Person p2 = js.Deserialize<classtype>(str);
0
ответ дан 18 December 2019 в 08:27
поделиться

Serializer JavaScript в .NET является частью System.Web.script.Serialization пространство имен.

Вот пример метода расширения, который я использую для десериализации строк:

public static T FromJSON<T>(this string json)
 {
            JavaScriptSerializer jss = new JavaScriptSerializer();

            return jss.Deserialize<T>(json);
 }

, поскольку это метод расширения строки Вы можете использовать его на любой строке.

MyCustomType = myJsonString.FromJSON<MyCustomType>();
9
ответ дан 18 December 2019 в 08:27
поделиться

Вы также можете захотеть Посмотрите на json.net , который является бесплатным проектом с открытым исходным кодом, и это как намного быстрее, чем встроенные .NET JSON Serializers, и это также доступно на .NET 1.x и 2.0, если вам все еще нужно поддерживать их.

Это действительно чудесное программное обеспечение! Настоятельно рекомендуется.

5
ответ дан 18 December 2019 в 08:27
поделиться

Ссылка, которую вы разместили, взята из моего блога, в чем проблема с ее использованием? не стесняйтесь отвечать на сообщение в блоге или напишите мне по адресу (скрыто) Я использую уже некоторое время, и он отлично работает.

Что касается обсуждаемого JavascriptSerializer, который встроен в .Net Framework, проблема в том, что этот сериализатор не сериализируется в / из List <>. Если вы хотите это сделать, вам нужно использовать Newtonsoft.JSON для этого, потому что .NET Framework просто не поддерживает его. И поскольку основное использование этого - возвращение JSON в некоторый клиентский скрипт для поиска или чего-то еще, вещь List <> просто необходима.

2
ответ дан 18 December 2019 в 08:27
поделиться

Но с этим фрагментом кода вы не можете десериализовать / сериализовать List <>, что очень удобно, если вы работаете с наборами результатов, и более производительно, чем встроенный .NET. JavascriptSerializer, поэтому Newtonsoft.Json является лучшим вариантом:

Для одного объекта вашего настраиваемого типа:

classtype myDeserializedObj = (classtype)JavaScriptConvert.DeserializeObject(jsonString, typeof(classtype));       

Для списка объектов вашего настраиваемого типа:

List<classtype> myDeserializedObjList = (List<classtype>)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString, typeof(List<classtype>));
2
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: