【发布时间】:2019-12-31 17:48:12
【问题描述】:
我有下面的 JSON 对象
{
"movieList":[
{
"movieID":1,
"title":"TITLE 1",
"showTimes":[
{
"date":"xx",
"time":["11:00" , "15:00" ]
},
{
"date":"xx",
"time":["11:00"]
},
{
"date":"xx",
"time":["18:00" ]
},
{
"date":"xx",
"time":["11:00" , "15:00" , "18:00" ]
}
]
}
]
}
想要删除“showTimes”数组下的以下节点。在这里,我试图删除“时间”属性中没有值“18:00”的节点。
{
"date":"xx",
"time":["11:00" , "15:00" ]
},
{
"date":"xx",
"time":["11:00"]
}
使用下面的代码,我可以在 foreach 循环中获取时间值
StreamReader rs = new StreamReader("xx.json");
string json = rs.ReadToEnd();
JObject jsonObject = JObject.Parse(json);
JToken jToken = JToken.Parse(json);
var result = jToken["movieList"].SelectMany(x => x["showTimes"].SelectMany(y => y["time"].Select(z => z)).ToList());
foreach (var item in result)
{
if (item.ToString() != "18:00")
{
// item.Parent.Remove();
}
}
如何在 foreach 循环中从我的 JSON 对象中删除上述节点?
【问题讨论】:
-
我不能在这里使用模型类,想将动态 JSON 返回到 UI。 time("18:00" ) 是修改我的 JSON 对象的输入参数
-
为什么不能从具体类中生成所需的 JSON? 我知道这感觉就像我没有帮助 - 但如果人们使用具体的类作为他们的起点,95% 的 JSON 问题将会消失。
-
请参阅此link 可能会有所帮助。不过我强烈推荐你@mjwills 评论
标签: c# json asp.net-web-api json.net