Я использовал некоторый код для преобразования различных файлов Json
в список значений ключей. Теперь мне нужно иметь возможность отменить процедуру и воссоздать оригинал Json
. Ниже показан пример некоторого Json
и кода, который создает пары ключ-значение.
Мои вопросы: есть ли библиотека Json
, которая преобразует список значений ключа обратно в json или будет ли процесс синтаксическим анализом каждого ключа и воссозданием каждого элемента Json
?
Примечание: это не вопрос о том, как создать список из Json
, так как список мне уже будет предоставлен. Вопрос в том, как преобразовать список обратно в Json
. Ниже приведен пример столь случайного Json
, в моей работе будут использованы аналогичные Json
с вложенными коллекциями и т.д. c.
Оригинал Json:
{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
},
{
"type": "mobile",
"number": "123 456-7890"
}
],
"children": [],
"spouse": null
}
Json для вывода списка значений ключа:

Код, который выполняет преобразование Json в список:
static void Main()
{
var json = File.ReadAllText(@"c:\temp\test.txt");
var obj = JObject.Parse(json);
var result = obj.Descendants()
.OfType<JProperty>()
.Select(p => new KeyValuePair<string, object>
(p.Path, p.Value.Type == JTokenType.Array || p.Value.Type == JTokenType.Object
? null : p.Value));
var keyValueResult = result.ToDictionary(x => x.Key, x => x.Value);
Console.ReadLine();
}