如何从嵌套 JSON 创建列表
How to create a list from nested JSON
我有一个 JSON 看起来像这样 :
{
"operations": [
{
"creationTime": "2022-05-31T18:15:47.927+03:00",
"status": "PENDING",
"com_model_golfController": {
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":11,\"StationAddress\":26}]"
},
"description": "Stop Station"
},
{
"creationTime": "2022-05-31T18:15:47.927+03:00",
"status": "PENDING",
"com_model_golfController": {
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":12,\"StationAddress\":27}]"
},
"description": "Stop Station"
}
],
"statistics": {
"currentPage": 1,
"pageSize": 5
}
}
我创建了以下 类 : -
public class RootObject
{
public List<operation> operations { get; set; }
}
public class operation
{
public golfController com_model_golfController { get; set; }
}
public class golfController
{
public int mode { get; set; }
public string StopStationPayload { get; set; }
}
我一直在尝试不同的方法,但无法获得想要的结果。
我形成上述 类 的方法是否正确?我是 c# 的新手,正在尝试实现它。
我想要实现的是创建一个包含对象的列表:-
{
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":11,\"StationAddress\":26}]"
},
{
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":12,\"StationAddress\":27}]"
}
任何建议都会很有帮助。
基本上这个问题不是关于JSON的。是关于linq的。
在使用您使用的任何库反序列化您的 JSON 之后,您可以使用 linq 获取您的 golfController
对象,然后对其进行序列化。
var root = JsonConvert.DeserializeObject<RootObject>(json);
var controllers = root.operations.Select(o=>o.com_model_golfController).ToList()
var result = JsonConvert.SerializeObject(controllers);
我有一个 JSON 看起来像这样 :
{
"operations": [
{
"creationTime": "2022-05-31T18:15:47.927+03:00",
"status": "PENDING",
"com_model_golfController": {
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":11,\"StationAddress\":26}]"
},
"description": "Stop Station"
},
{
"creationTime": "2022-05-31T18:15:47.927+03:00",
"status": "PENDING",
"com_model_golfController": {
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":12,\"StationAddress\":27}]"
},
"description": "Stop Station"
}
],
"statistics": {
"currentPage": 1,
"pageSize": 5
}
}
我创建了以下 类 : -
public class RootObject
{
public List<operation> operations { get; set; }
}
public class operation
{
public golfController com_model_golfController { get; set; }
}
public class golfController
{
public int mode { get; set; }
public string StopStationPayload { get; set; }
}
我一直在尝试不同的方法,但无法获得想要的结果。 我形成上述 类 的方法是否正确?我是 c# 的新手,正在尝试实现它。
我想要实现的是创建一个包含对象的列表:-
{
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":11,\"StationAddress\":26}]"
},
{
"Mode": 0,
"StopStationPayload": "[{\"ControllerAddress\":12,\"StationAddress\":27}]"
}
任何建议都会很有帮助。
基本上这个问题不是关于JSON的。是关于linq的。
在使用您使用的任何库反序列化您的 JSON 之后,您可以使用 linq 获取您的 golfController
对象,然后对其进行序列化。
var root = JsonConvert.DeserializeObject<RootObject>(json);
var controllers = root.operations.Select(o=>o.com_model_golfController).ToList()
var result = JsonConvert.SerializeObject(controllers);