Переход с Newtonsoft.Json на Utf8.Json

171
03 мая 2019, 14:30

По словам автора, Utf8.Json значительно быстрее и меньше ест памяти, и притом столь же функционален, как и Newtonsoft.Json.

В чем суть - получаются разные объекты.

строка на входе

 string raw = {"_id":"1","battles":7,"forces":22,"persons":[32,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,29,29,23,22,22,23,9,10,9,9,9,9,9,9,6,6,6,6,5,5,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2],"shop":0}

В случае NewtonSoft.Json

k =  JsonConvert.DeserializeObject(raw);

получается вот такой вот отформатированный тот же json

 k = {
"_id": "1",
"battles": 7,
"forces": 22,
"persons": [
32,
41,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
29,
29,
23,
22,
22,
23,
9,
10,
9,
9,
9,
9,
9,
9,
6,
6,
6,
6,
5,
5,
5,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2
],
"shop": 0,
}

А вот в случае Utf8.Json

k = Utf8Json.JsonSerializer.Deserialize<object>(raw);

получается Dictionary такого вида

Как сделать, чтобы он возвращал отформатированную строку, как NewtonSoft.Json?

key - value
_id     1
battles 7

Ну и тд и тп. Т.е. он превращает JSON в Dictionary.

Если я просто делаю

k = Utf8Json.JsonSerializer.Deserialize<string>(raw);

То получаю ошибку

JsonParsingException: expected:'String Begin Token', actual:'{', at offset:0
READ ALSO
AspNetCore 2.1 web api передача xml в теле Post запроса

AspNetCore 2.1 web api передача xml в теле Post запроса

Здравствуйте нужно передать вот такой такой XML документ

167
Уникальный js скрипт для mysql записи php

Уникальный js скрипт для mysql записи php

Подскажите пожалуйста, есть код:

171
Запрос в запросе или получение данных из двух таблиц mysql php

Запрос в запросе или получение данных из двух таблиц mysql php

Подскажите пожалуйста, как правильнее организовать? Есть код который выводит данные из таблицы:

157