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

如何使用jQuery为JSON的protocol_body添加新的group节点?

如何向JSON对象的protocol_body中添加新的group?

首先看你提供的原始数据结构:

var data_json = {
 "protocol": {
  "protocol_descr": {
   "protocol_name": "test"
  },
  "protocol_body": {
   "group": {
    "group_name": "test group",
    "position_info": {
     "position_name": "1",
     "position_type": "tags",
     "position_value": "some,value",
     "data-free":"false",
     "data-type":"false",
     "data-optional":"false"
    }
   }
  }
 }
};

你遇到的问题很明确:push()是数组专属的方法,但你的protocol_body是一个普通对象(用{}包裹),所以直接调用data_json.protocol.protocol_body.push()肯定会无效甚至报错。

这里有两种常见的解决方式,你可以根据业务需求选择:

方案1:将protocol_body改为数组(推荐用于需要多个有序group的场景)

如果你的业务逻辑中protocol_body需要容纳多个group,并且需要保持它们的顺序,最好把protocol_body改成数组结构,这样就能用push()轻松添加新元素了:

// 先调整原始结构,把protocol_body改为数组
var data_json = {
 "protocol": {
  "protocol_descr": {
   "protocol_name": "test"
  },
  "protocol_body": [
   {
    "group_name": "test group",
    "position_info": {
     "position_name": "1",
     "position_type": "tags",
     "position_value": "some,value",
     "data-free":"false",
     "data-type":"false",
     "data-optional":"false"
    }
   }
  ]
 }
};

// 现在可以用push添加新的group
data_json.protocol.protocol_body.push({
  "group_name": "new test group",
  "position_info": {
    "position_name": "2",
    "position_type": "tags",
    "position_value": "new,values",
    "data-free":"true",
    "data-type":"true",
    "data-optional":"true"
  }
});

方案2:保持protocol_body为对象,添加新的group属性

如果不需要group的顺序,或者每个group有唯一的标识,可以直接给protocol_body对象添加新的属性来存储新group:

// 基于你原来的结构直接修改
data_json.protocol.protocol_body.group2 = {
  "group_name": "second test group",
  "position_info": {
    "position_name": "2",
    "position_type": "tags",
    "position_value": "another,value",
    "data-free":"true",
    "data-type":"false",
    "data-optional":"true"
  }
};

这样修改后,protocol_body就会包含group和group2两个属性,分别对应不同的分组数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:14:31