我目前正在尝试使用Json.NET反序列化从Web API返回的JSON字符串。我的问题是在响应中有嵌套属性,它们总是具有相同的结构(因此通常应该反序列化为相同的对象类型),但名称不同。这是一个截图:
Json.NET中是否有内置机制来处理这些记录对象?否则,最好的办法是什么?
非常感谢!
答案 0 :(得分:1)
public class Records
{
[JsonProperty(PropertyName = "records")]
public List<int> records { get; set; }
[JsonProperty("items")]
private List<int> items { set { records.AddRange(value); } }
}
您可以通过将其他列表分配给主要列表来破解它。
var str = "{\"records\":[\"1\",\"2\"],\"items\":[\"3\",\"4\"]}";
var json = JsonConvert.DeserializeObject<Records>(str);
序列化后,您将获得
{"records":[1,2,3,4]}
答案 1 :(得分:1)
您可以将其反序列化为Dictionary,然后遍历键。
(此fiddle中的示例)。