Newtonsoft json что это
Перейти к содержимому

Newtonsoft json что это

  • автор:

Что такое » newtonsoft.json.dll » ?

В нашей базе содержится 1611 разных файлов с именем newtonsoft.json.dll . You can also check most distributed file variants with name newtonsoft.json.dll. Чаще всего эти файлы принадлежат продукту Json.NET. Наиболее частый разработчик — компания Newtonsoft. Самое частое описание этих файлов — Json.NET .NET 2.0. Этот файл — динамически подключаемая библиотека. Такая библиотека может загружаться и выполняться любым работающим процессом.

Подробности о наиболее часто используемом файле с именем «newtonsoft.json.dll»

Продукт: Json.NET Компания: Newtonsoft Описание: Json.NET .NET 2.0 Версия: 4.5.9.15308 MD5: aa37f07c42cf858455fe32fe9c68e5c7 SHA1: 2dda873dc21db27a238be0557ddf47d4ba9f3bd7 SHA256: 2f24133eaec5e2475c24ccf813d92822be233a3e3872529a9c7296ad7fa3e823 Размер: 399280 Папка: %USERPROFILE%\AppData\Local\Facebook\Messenger\2.1.4814.0 ОС: Windows 7 Частота: Высокая Цифровая подпись: Facebook, Inc.

Проверьте свой ПК с помощью нашей бесплатной программы

Icon

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

Библиотека «newtonsoft.json.dll» безопасная или опасная?

Последний новый вариант файла «newtonsoft.json.dll» был обнаружен 3857 дн. назад. В нашей базе содержится 120 шт. вариантов файла «newtonsoft.json.dll» с окончательной оценкой Безопасный и ноль вариантов с окончательной оценкой Опасный . Окончательные оценки основаны на комментариях, дате обнаружения, частоте инцидентов и результатах антивирусных проверок.

Библиотека с именем «newtonsoft.json.dll» может быть безопасным или опасным. Чтобы дать правильную оценку, вы должны определить больше атрибутов файла. Самый простой способ это сделать — воспользоваться нашей бесплатной утилитой для проверки файлов посредством нашей базы данных. Эта утилита содержит множество функций для контролирования вашего ПК и потребляет минимум системных ресурсов.
Щёлкните здесь, чтобы загрузить System Explorer.

Комментарии пользователей для «newtonsoft.json.dll»

У нас пока нет комментариев пользователей к файлам с именем «newtonsoft.json.dll».

Добавить комментарий для «newtonsoft.json.dll»

Для добавления комментария требуется дополнительная информация об этом файле. Если вам известны размер, контрольные суммы md5/sha1/sha256 или другие атрибуты файла, который вы хотите прокомментировать, то вы можете воспользоваться расширенным поиском на главной странице .

Если подробности о файле вам неизвестны, вы можете быстро проверить этот файл с помощью нашей бесплатной утилиты. Загрузить System Explorer.

Проверьте свой ПК с помощью нашей бесплатной программы

System Explorer это наша бесплатная, удостоенная наград программа для быстрой проверки всех работающих процессов с помощью нашей базы данных. Эта программа поможет вам держать систему под контролем. Программа действительно бесплатная, без рекламы и дополнительных включений, она доступна в виде установщика и как переносное приложение. Её рекомендуют много пользователей.

Работа с библиотекой Newtonsoft.Json на реальном примере. Часть 1

Если Вы читаете данную статью, значит, скорее всего, Вы в курсе что такое JSON и картинка ниже Вам знакома. Но в любом случае советую посетить эту страничку, если Вы там еще не были, а так же перед прочтением желательно ознакомиться с общими принципами работы с нотацией JSON на языке C#, например по этой ссылке.

Хочу отметить, что данная заметка не претендует на какую-то полноту раскрытия темы. Цель данного текста – структурировать и сохранить те наработки, которые я использовал при работе с библиотекой Newtonsoft.Json.

Постановка задачи

По большому счету, в рамках статьи не так важно каким образом были получены исходные данные, для парсинга, однако данное пояснение наверняка облегчит восприятие материала. Итак, основная задача состоит в том, чтобы реализовать функции API криптобиржи EXMO. Для простоты будем в основном работать с Публичным интерфейсом (Public API). В данном случае запрос информации будет выглядеть как обычный адрес странички сайта. Для отправки запросов используется класс HttpClient пространства имен System.Net.Http:

HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/trades/?pair=BTC_USD"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); 

Результат работы данной программы можно увидеть пройдя по ссылке https://api.exmo.com/v1/trades/?pair=BTC_USD. Если загрузить эти данные в JSON C# Class Generator, нам будет предложена следующая структура класса для десериализации:

 public class BTCUSD < public int trade_id < get; set; >public string type < get; set; >public string quantity < get; set; >public string price < get; set; >public string amount < get; set; >public int date < get; set; >> public class RootObject < public ListBTC_USD < get; set; >> 

Надо отметить, что сама функция “trades” криптобиржи позволяет запрашивать информацию сразу по нескольким валютным парам. И в случае запроса

string request = "https://api.exmo.com/v1/trades/?pair=BTC_USD,ETH_USD";

Структура класса будет выглядеть уже следующим образом:

 public class BTCUSD < public int trade_id < get; set; >public string type < get; set; >public string quantity < get; set; >public string price < get; set; >public string amount < get; set; >public int date < get; set; >> public class ETHUSD < public int trade_id < get; set; >public string type < get; set; >public string quantity < get; set; >public string price < get; set; >public string amount < get; set; >public int date < get; set; >> public class RootObject < public ListBTC_USD < get; set; >public List ETH_USD < get; set; >> 

Очевидно, что для каждой комбинации валютных пар классы не подготовишь, а значит нужно как-то выкручиваться.

Как делать не нужно.

Удивительно, но хороших статей по работе с нотацией JSON в русскоязычном интернете найти практически невозможно. Как следствие, те реализации EXMO API, которые можно найти на GitHub`е так или иначе содержат манипуляции с исходной структурой данных с использованием split`ов, trim`ов и тому подобных непотребств.

Надо признать, что я то же сначала изобрел велосипед и реализовал парсинг самостоятельно. Несмотря на то, что код абсолютно рабочий, это отличный пример как НЕЛЬЗЯ делать.

LinkedList loi = new LinkedList(); try < string[] json = answer.Split(new char[] < '' >); foreach (var item in json) < if (item.Length >20) < string[] trade = item.Split(new char[] < ',' >); if (trade.Length > 5) < string t_id = trade[0].Split(new char[] < ':' >)[1].Trim('"'); string t_type = trade[1].Split(new char[] < ':' >)[1].Trim('"'); string t_quantity = trade[2].Split(new char[] < ':' >)[1].Trim('"') .Replace(".", ","); string t_price = trade[3].Split(new char[] < ':' >)[1].Trim('"') .Replace(".", ","); string t_amount = trade[4].Split(new char[] < ':' >)[1].Trim('"') .Replace(".", ","); string t_date_time = trade[5].Split(new char[] < ':' >)[1].Trim('"'); loi.AddLast(new OrderInform(pair, Convert.ToInt32(t_id), t_type, Convert.ToDouble(t_quantity), Convert.ToDouble(t_price), Convert.ToDouble(t_amount), (new DateTime(1970, 1, 1, 0, 0, 0, 0)) .AddSeconds(Convert.ToInt32(t_date_time)))); > > > return loi; > catch (Exception ex) < return new LinkedList(); > 

Объекты JSON (класс JObject)

Объект JSON — неупорядоченный набор пар ключ/значение. Объект начинается с » (закрывающей фигурной скобкой). Каждое имя сопровождается: (двоеточием), пары ключ/значение разделяются запятой.

Из структуры, предложенной нам ранее JSON C# Class Generator`ом видно, что для каждой валютной пары у нас есть 6 постоянных полей. Обернем их в отдельный класс и назовем его Order.

 class Order < public int trade_id < get; set; >public string type < get; set; >public double quantity < get; set; >public double price < get; set; >public double amount < get; set; >public int date < get; set; >> 

Для того, чтобы суметь «выцепить» набор этих полей из динамически меняющейся структуры данных биржи, необходимо поподробней разобраться с типами данных доступными в библиотеке newtosoft.json. А точнее в пространстве имен newtonsoft.json.linq.

Для работы с библиотекой ее необходимо установить.

Чтобы установить библиотеку в Visual Studio можно просто выполнить поиск в NuGet.
Нажимаем правой кнопкой мыши на Решение (Solution) в Обозревателе решений (Solution explorer) и выбираем пункт «Управлением пакетами NuGet для решения. » («Mange NuGet Packages for solution. »).

Далее жмем «Обзор» («Browse») и в строке поиска вводим newtosoft.json. Ставим галочку напротив нашего решения и нажимаем «Установить» («Install»).

Пространство имен newtosoft.json.linq, после установки библиотеки, становится доступно для подключения к проекту:

using Newtonsoft.Json.Linq; 

Для представления данных в newtosoft.json.linq используется абстрактный класс JToken, от которого наследуются классы JValue (для представления простых значений) и JContainer (для представления структур). Структуры в свою очередь могут представлять из себя JArray (массив), JConstructor (конструктор), JObject (объект), либо JProperty (свойство).

В классах JArray и JObject имеется метод Parse, позволяющей преобразовывать JSON данные из обычной строки в соответствующие объекты. Так, если мы воспользуемся методом JObject.Parse(String) для структуры данных функции trades биржи Exmo:

HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/trades/?pair=BTC_USD,ETH_USD"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JObject jObject = JObject.Parse(responseBody); 

мы увидим структуру из двух элементов, каждый из которых представляет пару ключ-значение. Ключом в данном случае будет название валютной пары (тип String), а значением — список сделок (тип JToken):

Теперь списки сделок нам доступны по ключам «BTC_USD» и «USD_ETH». Например сделки по валютной паре «BTC_USD»:

Далее нам только останется перевести полученные данные в удобный для работы тип, например List , используя метод ToObject<>():

HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/trades/?pair=BTC_USD,ETH_USD"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JObject jObject = JObject.Parse(responseBody); JToken list = jObject["BTC_USD"]; List trades = list.ToObject(); 

либо всю структуру преобразовать в тип Dictionary> :

HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/trades/?pair=BTC_USD,ETH_USD"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JObject jObject = JObject.Parse(responseBody); Dictionary> trades = new Dictionary>(); foreach (KeyValuePair obj in jObject) trades.Add(obj.Key, obj.Value.ToObject>()); 

Массивы JSON (класс JArray)

Массив JSON — упорядоченная коллекция значений. Массив начинается с ‘[‘ (открывающей квадратной скобки) и заканчивается ‘]’ (закрывающей квадратной скобкой). Значения разделены запятой.

Как выглядит массив JSON можно увидеть пройдя по ссылке https://api.exmo.com/v1/currency. Если попытаться преобразовать его в объект JObject, так как мы делали с предыдущим запросом:

HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/currency"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JObject jObject = JObject.Parse(responseBody); 

мы получим исключение Newtonsoft.Json.JsonReaderException, сообщающее нам, что преобразуемые данные не являются объектом.

Массивы должны быть преобразованы в специальный тип JArray, который, так же как JObject, наследуется от JContainer.

HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/currency"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JObject jObject = JObject.Parse(responseBody); JArray jArray = JArray.Parse(responseBody); 

В случае, когда при парсинге, исходная структура заранее неизвестна, либо требуется возможность обработки обоих типов данных — в качестве типа преобразуемого объекта можно указать JContainer, или же JToken, тогда во время парсинга данные будут неявно преобразованы к нужному типу.

HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/currency"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JToken jArray = JToken.Parse(responseBody ); // Неявное преобразование в JArray List list = jArray.ToObject(); request = "https://api.exmo.com/v1/trades/?pair=BTC_USD,ETH_USD"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JToken jObject = JToken.Parse(responseBody ); // Неявное преобразование в JObject Dictionary> dict = jObject.ToObject>(); 

Значения JSON (класс JValue)

Согласно описанию формата JSON, значение может быть строкой в двойных кавычках, числом, true, false, null, объектом или массивом. Эти структуры могут быть вложенными. В реализации newotnsoft.json значением могут быть только объекты простых типов. Попытка преобразовать объект JArray в объект JValue приведет к исключению «System.InvalidCastException».

В качестве ознакомительного материала по работе с конкретными значениями (класс JValue) в библиотеке newtonsoft.json — хорошо подойдут примеры из документации раз и два.

Пример использования для данных с биржи:

 HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/currency"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JArray jArray = JArray.Parse(responseBody ); foreach (JValue value in jArray)

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

Полный текст программы.

using System.Threading.Tasks; using System.Collections.Generic; using System.Net.Http; using Newtonsoft.Json.Linq; namespace JSONObjects < class Order < public int trade_id < get; set; >public string type < get; set; >public double quantity < get; set; >public double price < get; set; >public double amount < get; set; >public int date < get; set; >> class Program < public static async Task Main(string[] args) < HttpClient httpClient = new HttpClient(); string request = "https://api.exmo.com/v1/currency"; HttpResponseMessage response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); JToken jArray = JToken.Parse(responseBody); // Неявное преобразование в JArray Listlist = jArray.ToObject(); request = "https://api.exmo.com/v1/trades/?pair=BTC_USD,ETH_USD"; response = (await httpClient.GetAsync(request)).EnsureSuccessStatusCode(); responseBody = await response.Content.ReadAsStringAsync(); JToken jObject = JToken.Parse(responseBody); // Неявное преобразование в JObject Dictionary> dict = jObject.ToObject>(); > > > 

Наиболее полную и подробную информацию о библиотеке всегда можно почерпнуть из официальной документации.

Парсинг значения json с помощью Newtonsoft на с#

по этому однозначно получить значение «lastPriceProtected» не получается так как в первой строке данного параметра нет. т.е. как бы я не формировал поиск поля постоянно получаю исключение: «System.NullReferenceException: «Ссылка на объект не указывает на экземпляр объекта.»» мой код:

JObject o = JObject.Parse(str); JToken firstProductNames = o["data"].SelectToken("lastPriceProtected"); 

======================================================================= после чтения документации и нескольких попыток получил рабочий код, спасибо всем кто помогал.

 JObject o1 = JObject.Parse(str); if (o1["data"] != null) < var firstProductNames = o1["data"].Value().ElementAt(0).SelectToken("lastPriceProtected"); if (firstProductNames != null) < float value = firstProductNames.Value(); Debug.WriteLine(value + "--1"); > > 

if (o1[«data»] != null) проверка нужна чтобы не получать исключения.
Отслеживать
Артур Шмаков
задан 24 мар 2018 в 10:38
Артур Шмаков Артур Шмаков
123 1 1 серебряный знак 10 10 бронзовых знаков
на какой конкретно строчке падает?
24 мар 2018 в 10:51
на 2 строке кода
24 мар 2018 в 10:54
А если так обращаться: o[«data»][«lastPriceProtected»] ?
24 мар 2018 в 10:56
Тоже самое исключение
24 мар 2018 в 10:58

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Советую вам создать полноценную структуру данных, некий класс, где будут все возможные значения из вашего JSON .

То есть, возьмем 2-ой JSON и сделаем два класса:

public class Data < [JsonProperty("symbol")] public string Symbol < get; set; >[JsonProperty("lastPrice")] public long LastPrice < get; set; >[JsonProperty("lastPriceProtected")] public double LastPriceProtected < get; set; >[JsonProperty("lastChangePcnt")] public double LastChangePcnt < get; set; >[JsonProperty("timestamp")] public System.DateTimeOffset Timestamp < get; set; >> public class Root < [JsonProperty("table")] public string Table < get; set; >[JsonProperty("action")] public string Action < get; set; >[JsonProperty("data")] public Data[] Data < get; set; >> 

Как можно заметить, тут имеются все возможные значения приведенные в красивый вид с красивыми именами.

Далее нам надо десериализовать данные:

var json = JsonConvert.DeserializeObject(jsonString); 

Все, можно работать. Все данные, которые имеются в JSON — будут занесены в переменные, а те, которые пустые — будут иметь стандартные значения (то есть null , 0 , false и т.д.). Если не хотим путаться и не заполненные данные хотите получить в NULL значение, то можете добавить знак ? после типа (к примеру public double LastPriceProtected < get; set; >меняем на public double? LastPriceProtected < get; set; >).

Ну теперь простейший вывод:

foreach (var value in json.Data) < Console.WriteLine(value.LastPriceProtected); //Либо делаем проверку на необходимо на NULL/стандартное значение. >

На выходе получим 0 , либо значение (в вашем случае это 8569,7146 ).

По поводу минимализма и практичности.

1. Использование JObject :

Маленькое приложение, где мы выводим различные данные (как в основном «теле» программы, так и в другом классе):

namespace ConsoleApp2 < public class SumData < private JObject Json; public SumData(JObject json) < Json = json; >public int Sum() < return (int) Json["data"]["valOne"] + (int) Json["data"]["valOne"]; >> class Program < private static JObject json; static void Main(string[] args) < string jString = ". "; json = JObject.Parse(jString); Console.WriteLine(json["Hello"]); ListedObjects(); SumData sumData = new SumData(json); Console.WriteLine(sumData.Sum()); Console.ReadKey(); >private static void ListedObjects() < foreach (var val in json["Collection"]) < Console.WriteLine(val["dataObject"]); Console.WriteLine(val["dataObject2"]); >> > > 

К примеру на сервере изменилась структура, все данные переименовались. Что делать? Выход — искать где крашется приложение и руками изменять все значения.

Минусы такого подхода в том, что вы не получите ошибку, пока не вызовите эти данные. То есть вы можете что то упустить при редактирование, да и кода править придется много.

Плюсы такого подхода:

  • Не нужна структура классов.
  • Мы не знаем имена, которые нам доступны, забудем — беда..
  • Трудно редактировать в коде.
  • Если что то поменялось на сервер, то мы не узнаем это, пока не вызовем. То есть нам трудно будет отловить все переменные, можем где то забыть переименовать и среда разработки нам об этом не скажет.
  • Не очень понятные имена, зачастую сервера дают значения вида o , h .

2. Использование Структуры классов :

Точно такая же задача, все точно такое же, но с классами:

namespace ConsoleApp2 < public class RootJson < public string Hello < get; set; >public Collection[] Collection < get; set; >public Data Data < get; set; >> public class Collection < [JsonProperty("jsonServerValue")] public int dataObject < get; set; >public int dataObject2 < get; set; >> public class Data < public int valOne < get; set; >public int valTwo < get; set; >> public class SumData < private RootJson Json; public SumData(RootJson json) < Json = json; >public int Sum() < return Json.Data.valOne + Json.Data.valTwo; >> class Program < private static RootJson json; static void Main(string[] args) < string jString = ". "; json = JsonConvert.DeserializeObject(jString); Console.WriteLine(json.Hello); ListedObjects(); SumData sumData = new SumData(json); Console.WriteLine(sumData.Sum()); Console.ReadKey(); > private static void ListedObjects() < foreach (var val in json.Collection) < Console.WriteLine(val.dataObject); Console.WriteLine(val.dataObject2); >> > > 

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

Плюсы такого подхода:

  • Тип, мы его сразу знаем, не надо сто раз конвертировать.
  • Если поменяются данные, то не потеряетесь при изменение, среда разработки подскажет что и где не так.
  • Удобные имена.
  • Удобное использование.
  • Знаем все доступные переменные, не надо вспоминать имя.
  • Ну, может быть большая «портянка» из структуры классов, но ИМХО, положил в файлик .cs да забыл.

JObject Class

Inheritance Hierarchy

Namespace: Newtonsoft.Json.Linq
Assembly: Newtonsoft.Json (in Newtonsoft.Json.dll) Version: 12.0.1+509643a8952ce731e0207710c429ad6e67dc43db

Syntax

public class JObject : JContainer, IDictionarystring, JToken>, ICollectionKeyValuePairstring, JToken>>, IEnumerableKeyValuePairstring, JToken>>, IEnumerable, INotifyPropertyChanged, ICustomTypeDescriptor, INotifyPropertyChanging

The JObject type exposes the following members.

Constructors

Initializes a new instance of the JObject class.
Initializes a new instance of the JObject class with the specified content.
Initializes a new instance of the JObject class with the specified content.
Initializes a new instance of the JObject class from another JObject object.

Properties

Gets the container’s children tokens.
Gets the count of child JSON tokens.
Get the first child token of this token.
Gets a value indicating whether this token has child tokens.

Methods

Adds the specified content as children of this JToken.
Adds the specified property name.
Adds the specified content immediately after this token.
Adds an object to the annotation list of this JToken.
Adds the specified content immediately before this token.
Adds the specified content as the first children of this JToken.
Returns a collection of the sibling tokens after this token, in document order.
Returns a collection of the ancestor tokens of this token.
Returns a collection of tokens that contain this token, and the ancestors of this token.
Gets the first annotation object of the specified type from this JToken.
Get the first annotation object of the specified type from this JToken.
Gets a collection of annotations of the specified type for this JToken.
Gets a collection of annotations of the specified type for this JToken.
Returns a collection of the sibling tokens before this token, in document order.
Returns a collection of the child tokens of this token, in document order.
Determines whether the JSON object has the specified property name.
Creates a JsonReader for this token.
Creates a JsonWriter that can be used to add tokens to the JToken.
Creates a new instance of the JToken. All child tokens are recursively cloned.
Returns a collection of the descendant tokens for this token in document order.

Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.

Determines whether the specified object is equal to the current object.

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

Creates a JObject from an object.
Creates a JObject from an object.
Returns an enumerator that can be used to iterate through the collection.
Serves as the default hash function.
Returns the DynamicMetaObject responsible for binding operations performed on this object.
Gets the Type of the current instance.
Gets the JToken with the specified property name.

Gets the JToken with the specified property name. The exact property name will be searched for first and if no matching property is found then the StringComparison will be used to match a property.

Loads a JObject from a JsonReader.
Loads a JObject from a JsonReader.
Asynchronously loads a JObject from a JsonReader.
Asynchronously loads a JObject from a JsonReader.
Creates a shallow copy of the current Object.
Merge the specified content into this JToken.
Merge the specified content into this JToken using JsonMergeSettings.
Raises the AddingNew event.
Raises the CollectionChanged event.
Raises the ListChanged event.
Raises the PropertyChanged event with the provided arguments.
Raises the PropertyChanging event with the provided arguments.
Load a JObject from a string that contains JSON.
Load a JObject from a string that contains JSON.
Gets an IEnumerable T of JProperty of this object’s properties.
Gets a JProperty with the specified name.

Gets the JProperty with the specified name. The exact name will be searched for first and if no matching property is found then the StringComparison will be used to match a property.

Gets a JEnumerable T of JToken of this object’s property values.
Removes this token from its parent.
Removes the property with the specified name.
Removes the child nodes from this token.
Removes the annotations of the specified type from this JToken.
Removes the annotations of the specified type from this JToken.
Replaces this token with the specified token.
Replaces the child nodes of this token with the specified content.
Selects a JToken using a JPath expression. Selects the token that matches the object path.
Selects a JToken using a JPath expression. Selects the token that matches the object path.
Selects a collection of elements using a JPath expression.
Selects a collection of elements using a JPath expression.
Creates an instance of the specified .NET type from the JToken.
Creates an instance of the specified .NET type from the JToken using the specified JsonSerializer.
Creates an instance of the specified .NET type from the JToken.
Creates an instance of the specified .NET type from the JToken using the specified JsonSerializer.
Returns the indented JSON for this token.
Returns the JSON for this token using the given formatting and converters.
Tries to get the JToken with the specified property name.

Tries to get the JToken with the specified property name. The exact property name will be searched for first and if no matching property is found then the StringComparison will be used to match a property.

Gets the JToken with the specified key converted to the specified type.
Returns a collection of the child values of this token, in document order.
Writes this token to a JsonWriter.
Writes this token to a JsonWriter asynchronously.
Writes this token to a JsonWriter asynchronously.

Events

Occurs before an item is added to the collection.
Occurs when the items list of the collection has changed, or the collection is reset.
Occurs when the list changes or an item in the list changes.
Occurs when a property value changes.
Occurs when a property value is changing.

Extension Methods

Name Description
IsValid(JsonSchema) Overloaded.

Determines whether the JToken is valid.

Caution noteCaution
JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.

Determines whether the JToken is valid.

Caution noteCaution
JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.

Validates the specified JToken.

Caution noteCaution
JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.

Validates the specified JToken.

Caution noteCaution
JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.

Examples

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *