Json在不同节点有重复的键名



我在json工作。在json中,数据键在单个json中的不同节点中重复。它是一个响应json。我如何为这个json类创建一个序列化的类。在下面json数据重复是不同的节点。当我尝试在线类生成器时,类生成没有第二个数据类。我们如何解决它。

{
"frost": {
"response": {
"status": {
"message": "succe"
},
"totalRecords": 2,
"data": [
{
"abc": "a1",
"xyz": "te"
},
{
"abc": "e5",
"xyz": "pe"
}
]
},
"request": {
"method": "htl",
"data": {
"name": "raja",
"partnerTypeId": "3",
"resultType": "json"
}
}
}
}

手工操作的方法是攻击每个部分。例如,response是一个类,它有一个status(一个类),一个totalRecords(一个整数)和一个data(一个类实例数组)。当我完成这个练习时,我想出了这些类(总体上从上到下,但就深度而言是从下到上):

public class ResponseDataItem
{
public string abc { get; set; }
public string xyz { get; set; }
}
public class ResponseStatus
{
public string message { get; set; }
}
public class Response
{
public ResponseStatus status { get; set; }
public int totalRecords { get; set; }
public List<ResponseDataItem> data { get; set; }
}
public class RequestData
{
public string name { get; set; }
public string partnerTypeId { get; set; }
public string resultType { get; set; }
}
public class Request
{
public string method { get; set; }
public RequestData data { get; set; }
}
public class Overall
{
public Response response { get; set; }
public Request request { get; set; }
}
public class Root
{
public Overall frost { get; set; }
}

然后,我刚刚将您的JSON反序列化为Root的实例:

var result = JsonConvert.DeserializeObject<Root>(theJson);

你可能想使用[JsonProperty],这样你就有了c#标准的属性名,比如:

public class ResponseDataItem
{
[JsonProperty("abc")]
public string Abc { get; set; }
[JsonProperty("xyz")]
public string Xyz { get; set; }
}

,您可能希望重新排列内容(并且,您可能希望在某些地方使用字典),但这应该适用于您显示的内容。

最新更新