【问题标题】:How to delete a JSON array from a JSON object?如何从 JSON 对象中删除 JSON 数组?
【发布时间】:2022-01-01 16:55:09
【问题描述】:

我有一个包含内容的 JSON 文件:

{"chapters":[
  {
    "id":"1",
    "name": "1"
  },

  {"id":"2",
    "name": "2"
  },

  {"id":"3",
    "name": "3"
  },

  {"id":"4",
    "name": "4"
  },

  {"id":"5",
    "name": "5"
  },
  {"id":"6",
    "name": "6"
  }
],
  "1": [
    {
      "name": "1.1"
    },
    {
      "name": "1.2"
    },
    {
      "name": "1.3"
    }
  ]
}

我可以从数组中读取值,在数组中添加和更改值,但我不知道如何从 JSON 对象中删除数组。例如,我想删除名为“1”的数组。我该怎么做?

【问题讨论】:

  • TJSONObject 有一个RemovePair() 方法。
  • 如果您只想删除数组,那么对象属性"1" 将继续存在。您确定不想删除整个属性(RemovePair() 做了什么)?
  • @Remy Lebeau,哦,是的,谢谢:)

标签: arrays json delphi rad-studio


【解决方案1】:

你可以通过下面的代码来做到这一点:

procedure TForm1.Button1Click(Sender: TObject);
const
  _JSONStr = '{"chapters":[{"id":"1","name": "1"},{"id":"2","name": "2"},{"id":"3","name": "3"},{"id":"4","name": "4"},{"id":"5","name": "5"},{"id":"6","name": "6"}],"1": [{"name": "1.1"},{"name": "1.2"},{"name": "1.3"}]}';
var
  AJSONVal: TJSONValue;
begin
  AJSONVal := TJSONObject.ParseJSONValue(_JSONStr);

  if AJSONVal is TJSONObject then
    (AJSONVal as TJSONObject).RemovePair('1');
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2023-02-15
    • 2015-07-18
    相关资源
    最近更新 更多