You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按key:value从JSON对象获取指定字段,通过id操作JSON数组对象

基于id操作JSON数组中指定对象的实现方案

完全可以通过id属性完成数组中指定对象的查询、删除操作,核心逻辑为遍历数组匹配id字段值,以下以最常用的JavaScript运行环境为例给出具体实现,其他编程语言思路一致。

注意:原示例JSON存在尾逗号语法问题,解析前需要删除否则会报错,下文已经修正语法问题


前置准备

首先需要把JSON字符串解析为对应运行环境的数组结构,JS中实现如下:

// 修正语法后的JSON字符串
const jsonStr = `[
{
  "dateinformation": "2021-10-05:23:01",
  "id": 1,
  "MoveCount": 3,
  "StartPoint": 2322,
  "TotalDist": 2331,
  "SafeDist": 21332,
  "Feed": 2332,
  "EndPoint":23245,
  "Count":1221
},
{
  "dateinformation": "2021-10-05:26:01",
  "id": 2,
  "MoveCount": 3,     
  "StartPoint": 2322,
  "TotalDist": 2331,
  "SafeDist": 21332,
  "Feed": 2332,
  "EndPoint":23245,
  "Count":1221
},
{
  "dateinformation": "2021-10-55:03:01",
  "id": 3,
  "MoveCount": 3,
  "StartPoint": 2322,
  "TotalDist": 2331,
  "SafeDist": 21332,
  "Feed": 2332,
  "EndPoint":23245,
  "Count":1221
}]`
// 解析为可操作的JS数组
const dataArr = JSON.parse(jsonStr)

1. 获取指定id的对象

用数组原生find方法,匹配到第一个符合条件的对象就返回,找不到返回undefined:

// 替换为你要查询的目标id
const targetId = 2
const targetObj = dataArr.find(item => item.id === targetId)
console.log(targetObj) // 输出id为2的对象

如果存在id重复、需要匹配所有符合条件的对象的场景,可以改用filter方法,返回符合条件的对象组成的新数组。


2. 删除指定id的对象

两种常用实现方案:

方案1:filter过滤(更推荐,不改变原数组)

直接过滤掉id等于目标值的元素,生成新数组:

const targetId = 2
const newArr = dataArr.filter(item => item.id !== targetId)
// newArr就是删除了id为2的对象后的新数组

方案2:splice删除(会改变原数组)

先找到目标对象的下标,再通过下标删除元素:

const targetId = 2
const targetIndex = dataArr.findIndex(item => item.id === targetId)
// 确认找到对应元素再执行删除,避免报错
if (targetIndex !== -1) {
  dataArr.splice(targetIndex, 1)
}
// 此时原dataArr已经删除了id为2的对象

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:27:02