Nano Hash - криптовалюты, майнинг, программирование

Как я могу закодировать значение null с помощью JObject в json.net?

В newtonsoft json.net, когда мы используем

JsonConvert.SerializeObject(null, Formatting.Indented)

Я получаю "null" на выходе, как и ожидалось. Теперь я хотел бы представлять объекты (которые могут быть нулевыми) с помощью JObject, но он выдает исключение, когда я пытаюсь кодировать нуль таким образом:

(JObject.FromObject(null)).ToString(Formatting.Indented)

Есть ли способ сделать это? Спасибо

16.03.2020

  • Единственное, что JObject.FromObject может вернуть в этом случае, это null, а вместо этого выдает исключение. Если бы вы действительно хотели вернуть JObject, у вас был бы пустой объект JSON, а это другое дело. Таким образом, JObject.FromObject(null) должно быть переведено только в null, и вы не можете вызывать ToString при этом. По сути, вы находитесь в своего рода крайнем случае здесь. 16.03.2020
  • Поскольку различные типы J* являются классами, особый случай null обрабатывается не экземпляром любого из этих типов, а просто ссылкой на null. 16.03.2020
  • По сути, нет способа представить объекты null с помощью JObject, потому что наименьший экземпляр JObject, который у вас может быть, — это пустой объект, который не совпадает с null. 16.03.2020
  • Спасибо за помощь! Позвольте мне спросить еще кое-что, я считаю, что "null" является допустимым json, верно? Кажется, согласно stackoverflow.com/a/39124954/750124 Итак, как этот json/string представлен в json .сеть? 16.03.2020
  • См. ответ Брайана ниже. Вы не делаете этого с JObject. 16.03.2020
  • Да, я видел JValue, но хотел JObject. Но это нормально, в конце концов я понял, что должен использовать JObject или null вместо представления null в JObject. Это заставляет меня менять dll, чего я не хотел, но я переживу. Большое спасибо всем за помощь. :) 16.03.2020

Ответы:


1

Чтобы представить нулевое значение с помощью JToken, вы можете использовать JValue.CreateNull().

JToken token = JValue.CreateNull();
string json = token.ToString();
16.03.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..