Newsoft JSON десериализовать ключ как значение - PullRequest
0 голосов
/ 24 февраля 2019

Как я могу получить десериализацию ключа из строки json как значения объекта?

Пример:

{"vals": {"foo":{"val":1}, "bar":{"val":1}}}

Into

public Bizz
{
   public IList<Buzz> vals;
}
public Buzz
{
  public string name;
  public int val;
}

Где имябудет держать foo/bar.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Как сказал предыдущий автор, он естественно сериализует его в словарь, скажем serialized, и тогда вы можете сделать:

var bizzes = new Bizz 
{
    vals = serialized
        .Select(kvp => new Buzz { name = kvp.Key, val = kvp.Value.val})
        .ToList()
}
0 голосов
/ 24 февраля 2019

Вы можете написать свой собственный Json Converter или немного упростить Json и перейти с Dictionary<> вместо Buzz.Json генерируется вами?

Чтобы иметь возможность преобразовать в Dictionary<>, Json должен выглядеть как

{"foo":"1", "bar":"1"}
...