C# - десериализация JSON в ValueTuple
Функция кортежа C# была создана serialization для представления наборов jsonconvert значений, а не сущностей.
Имена jsonobject значений похожи на имена c#.net переменных. Как и имена переменных, имена json-parsing значений кортежей существуют jsonconvert только в исходном коде.
(string foo, bool bar)
на serialization самом деле просто ValueTuple
. точно csharp так же, как (string bar, bool foo)
:
(string foo, bool bar) a = ('one', true);
(string bar, bool foo) b = a;
Значения кортежа json-parsing хранятся в полях с именами json-encode Item1
, Item2
и т. д.
Убедитесь сами, как csharp это работает here.
Если вы так newtonsoft любите использовать для этого unserialize кортежи значений, вам придется deserialize десериализовать себя:
var json = "[{\"foo\": \"1\", \"bar\": false}, {\"foo\": \"2\", \"bar\": false}]";
var jArray = JsonConvert.DeserializeObject (json);
var list = new List<(string foo, bool bar)>();
foreach (var item in jArray)
{
list.Add((item.Value("foo"), item.Value("bar")));
}
c#
json
serialization
json.net
valuetuple
C# - десериализация JSON в ValueTuple
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.