JSON
- 我需要反序列化的对象具有以下形式:
{
"typeName":
{
"field1": "content1",
"field2": "content2" ...
}
}
基本上它意味着除了数组之外的每个对象都包含在包装器对象中,其中字段名称是包装对象的类型。创建特定子类的实例需要类型名称。我不能改变任何东西,但需要使用这个界面。我试着写一个自定义转换器,但我不知道如何区分类型信息与包装对象的正常字段名称。是否有可能以任何方式解决这个问题?
答案 0 :(得分:1)
您的问题不是很明确,但我假设您的“typeNames”未修复。如果是这样,您可以使用Json.NET反序列化为字典,即:
public void DeserializeSomeStuff()
{
const string json = @"{""typeName"":{""field1"": ""content1"",""field2"": ""content2""}}";
var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(json);
foreach (var kvp in obj)
{
Console.WriteLine("key={0}", kvp.Key);
foreach (var kv in kvp.Value)
{
Console.WriteLine(" key={0} value={1}", kv.Key, kv.Value);
}
}
// key=typeName
// key=field1 value=content1
// key=field2 value=content2
}