c# - 从 JSON 中删除节点并将子节点向上移动
问题描述
我有一些 JSON,想从 JSON 中删除一个节点,但将已删除节点内的节点移动到其父节点。
这是我开始的 JSON:
{
"Response": {
"Outcome": {
"KeyValueOfstringOutcomepQnxSKQu": [
{
"Key": "Icon",
"Value": {
"DataType": "System.String",
"Field": "Icon",
"Value": "O"
}
},
{
"Key": "IconDescription",
"Value": {
"DataType": "System.String",
"Field": "IconDescription",
"Value": "Old"
}
},
{
"Key": "IconLongDescription",
"Value": {
"DataType": "System.String",
"Field": "IconLongDescription",
"Value": "Older"
}
}
]
}
}
}
这是我想要结束的 JSON。我需要KeyValueOfstringOutcomepQnxSKQu
删除节点,但它的子节点必须仍然存在于 JSON 中:
{
"Response": {
"Outcome": [
{
"Key": "Icon",
"Value": {
"DataType": "System.String",
"Field": "Icon",
"Value": "O"
}
},
{
"Key": "IconDescription",
"Value": {
"DataType": "System.String",
"Field": "IconDescription",
"Value": "Old"
}
},
{
"Key": "IconLongDescription",
"Value": {
"DataType": "System.String",
"Field": "IconLongDescription",
"Value": "Older"
}
}
]
}
}
我试图像这样删除节点,但据我所知:
JObject rss = JObject.Parse(Convert.ToString(jsonText));
var x = rss.Remove("KeyValueOfstringOutcomepQnxSKQu");
我怎样才能让孩子们向上移动?
解决方案
您可以使用SelectToken
and执行此操作Replace
:
JObject rss = JObject.Parse(jsonText);
rss.SelectToken("Response.Outcome")
.Replace(rss.SelectToken("Response.Outcome.KeyValueOfstringOutcomepQnxSKQu"));
jsonText = rss.ToString();
推荐阅读
- php - 根据 Woocommerce 中的购物车商品运输类别计数更改运输类别
- spring-boot - AMQP convertSendAndReceive 无法从 Spring Boot 1.5 迁移到 2
- css - 按钮仅在 mac firefox 中不起作用
- javascript - 无法从注入另一个 div 的 div 获取动态十六进制代码属性
- r - R 字体在不同的 PDF 查看器中呈现不同
- javascript - iab_verifier Android 无效
- c# - 如何从坐标点数组中提取坐标
- facebook-graph-api - Facebook Graph API:在 Java 中的一次 API 调用中检索带有评论和点赞的提要
- php - PDO::lastInsertId 在 PHP 7.2 中的 SELECT 后重置
- java - JpaRepository 查找或创建用户角色返回 null 并给出错误