Что эквивалентно JToken.DeepEquals в System.Text.Json?C#

Место общения программистов C#
Ответить
Anonymous
 Что эквивалентно JToken.DeepEquals в System.Text.Json?

Сообщение Anonymous »

Я хочу перенести свой код из Newtonsoft Json.Net в стандартный Microsoft System.Text.Json. Но мне не удалось найти альтернативу JToken.DeepEqual
По сути, код должен сравнивать два JSON в модульном тесте. Ссылка JSON и результат JSON. Я использовал механизм Newtonsoft для создания двух JObject и последующего сравнения их с JToken.DeepEqual. Вот пример кода:

Код: Выделить всё

[TestMethod]
public void ExampleUnitTes()
{
string resultJson = TestedUnit.TestedMethod();
string referenceJson =
@"
{
...bla bla bla...
...some JSON Content...
...bla bla bla...
}";

JObject expected = ( JObject )JsonConvert.DeserializeObject( referenceJson );
JObject result = ( JObject )JsonConvert.DeserializeObject( resultJson );
Assert.IsTrue( JToken.DeepEquals( result, expected ) );
}
Если я прав, Newtonsoft JObject похож на System.Text.Json.JsonDocument, и я могу его создать, просто я не знаю как сравнить его содержимое.

Код: Выделить всё

System.Text.Json.JsonDocument expectedDoc = System.Text.Json.JsonDocument.Parse( referenceJson );
System.Text.Json.JsonDocument resultDoc = System.Text.Json.JsonDocument.Parse( json );

Compare???( expectedDoc, resulDoc );
Конечно, сравнение строк не является решением проблемы, поскольку формат JSON не имеет значения, как и порядок свойств.


Подробнее здесь: https://stackoverflow.com/questions/605 ... -text-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»