这里有一个JSON响应,
{
"Items": [
{
"Key": {
"timestamp": "2022-11-06T20",
"value": 100.80
}
},
{
"Key": {
"timestamp": "2022-11-07T08",
"value": 100.90
}
}
]
}
我想重新格式化为:
{
"Key": [
{
"timestamp": "2019-01-08T20",
"value": 12.44
},
{
"timestamp": "2018-12-12 16:23:00",
"value": 12.45
}
]
}
对于所有的响应,Key必须只在顶部一次,然后是一个时间戳和值的数组,并完全删除Items父值。我已经尝试过这样做,并在实现上做了一些手脚,但我一直收到多个不同的错误。这是正确的想法吗?或者有更好的实现方法吗?
JObject obj = JObject.Parse(jsonOutput);
JObject newObj = new JObject();
new JProperty("KEY", new JArray(
.Children<JProperty>()
.Select(j => new JObject(
new JProperty("timestamp", j.Value["timestamp"]),
new JProperty("value", j.Value["value"])
)
)
)
);
jsonOutput = newObj.ToString();
什么是正确的方法来实现这个想法?谢谢!
2条答案
按热度按时间mo49yndu1#
这可以很容易地通过结合
SelectTokens()
与JSONPath万用字符运算子搭配使用,以选取所有必要的JSON对象。1.序列化匿名类型对象以创建所需的输出结构。
因此:
演示小提琴here。
kmpatx3s2#
你 可以 在 一 行 中 修复 它
中 的 每 一 个