当前位置: 首页 > 面试题库 >

从JSON对象中删除特定属性

刘选
2023-03-14
问题内容

我有一个JSON:

{
    "scbs_currentstatus": "",
      "scbs_primaryissue": "",
      "_umb_id": "Test",
      "_umb_creator": "Admin",
      "_umb_createdate": "0001-01-01 00:00:00",
      "_umb_updatedate": "0001-01-01 00:00:00",
      "_umb_doctype": "Test",
      "_umb_login": "Test",
      "_umb_email": "Test",
      "_umb_password": {
        "newPassword": "Test",
        "oldPassword": null,
        "reset": null,
        "answer": null
      },
      "_umb_membergroup": {
        " User": false,
        "Line User": true,
        "Callback User": false,
        "Su User": false,
        },
      "umbracoMemberComments": "Test",
      "umbracoMemberFailedPasswordAttempts": ""

    }

我试图删除所有以 “ umb_” 开头的属性。这在json.net中可能吗?

输出将是这样的:

{
        "scbs_currentstatus": "",
          "scbs_primaryissue": "",
           "umbracoMemberComments": "Test",
          "umbracoMemberFailedPasswordAttempts": ""
}

使用删除我能够做到,但是不能一次全部完成。

   result.Property("_umb_id").Remove();

有什么建议吗?


问题答案:

您可以先解析字符串:

var temp =  JArray.Parse(json);
temp.Descendants()
    .OfType<JProperty>()
    .Where(attr => attr.Name.StartsWith("_umb_"))
    .ToList() // you should call ToList because you're about to changing the result, which is not possible if it is IEnumerable
    .ForEach(attr => attr.Remove()); // removing unwanted attributes
json = temp.ToString(); // backing result to json

更新 或:

result.Properties()
    .Where(attr => attr.Name.StartsWith("_umb_"))
    .ToList()
    .ForEach(attr => attr.Remove());

更新#2

您可以在where子句中指定更多条件:

.Where(attr => attr.Name.StartsWith("_umb_") && some_other_condition)

要么

.Where(attr => attr.Name.StartsWith("_umb_") || some_other_condition)

或任何您需要的。



 类似资料:
  • } 现在,我的要求是当我单击“删除列”时,它会进入此方法,并且我想删除与之关联的特定列和行。 提前谢谢你的帮助。

  • 从 JSON 对象删除除了指定属性之外的任何其他属性。 使用 Object.keys() 方法遍历给定的 JSON 对象并删除给定数组中不包含的 keys 。 如果你传递一个特殊的键 childIndicator ,它也会深入地将这个函数应用到内部对象中。 const cleanObj = (obj, keysToKeep = [], childIndicator) => { Object.k

  • 问题内容: 我有一个要在Python中清理的JSON数组。我要删除该属性: data.json 我正在设置列表理解以删除该属性,但是我不确定如何创建关注以下内容的变量: 当我理解列表时,它返回一个空数组。我必须纠正什么才能使其正常工作? 问题答案: 解决您的问题的一种简单方法是使用以下方法删除不需要的密钥: 您应该添加一些安全检查,但是您知道了。

  • 问题内容: 我有一个看起来像这样的json数组: 我想有一个函数来删除“孩子”为空的元素。我该怎么做?我不是要答案,只是建议 问题答案: 要遍历对象的键,请使用循环: 要测试空元素的所有元素,可以使用递归方法:遍历所有元素,然后也递归地测试它们的孩子。 可以使用关键字删除对象的属性: 说明文件: https://developer.mozilla.org/zh-CN/docs/JavaScript

  • 问题内容: 如何通过匹配对象属性从数组中删除对象? 请只使用本机JavaScript。 我在使用接头时遇到麻烦,因为每次删除的长度都会减少。使用克隆并在原始索引上进行拼接仍然会给您带来长度减少的问题。 问题答案: 我以为你用过这样的东西? 修复bug所需要做的就是在下一次减少,然后(也可以选择向后循环): 为了避免线性时间删除,可以编写要 保留 在数组上的数组元素: 为了避免在现代运行时中进行线性

  • 问题内容: 如何从ArrayList中删除特定对象?假设我有一个如下课程: 我该如何从我的物品中删除物品 问题答案: 根据该方法删除对象。因此,您应该正确实现此方法。就像是: 要么