我如何从json字符串反序列化键作为对象的值?
示例:
{"vals": {"foo":{"val":1}, "bar":{"val":1}}}
进入
public Bizz
{
public IList<Buzz> vals;
}
public Buzz
{
public string name;
public int val;
}
其中的名称将包含foo/bar
。
答案 0 :(得分:1)
您可以编写自定义的Json Converter,也可以稍微简化Json并使用Dictionary<>
而不是Buzz
。 Json是由您生成的吗?
要能够转换为Dictionary<>
,Json应该看起来像
{"foo":"1", "bar":"1"}
答案 1 :(得分:1)
如先前的海报所述,它自然地将其序列化为字典,例如serialized
,然后您可以执行以下操作:
var bizzes = new Bizz
{
vals = serialized
.Select(kvp => new Buzz { name = kvp.Key, val = kvp.Value.val})
.ToList()
}