【问题标题】:How add record to json jquery?如何将记录添加到 json jquery?
【发布时间】:2018-05-17 06:00:58
【问题描述】:

我有 json 架构:

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"
            }
        }
    }
}
}

如何向“protocol_body”添加一个组? 我尝试使用下一个构造 - data_json.protocol.protocol_body.push(),但它不起作用。

【问题讨论】:

标签: jquery json


【解决方案1】:

您可以通过将值对象分配给json对象的键值来直接分配对象

检查下面的工作 sn-p

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"
            }
        }
    }
}
}
data_json.protocol.protocol_body.grop2 = {
  "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"
        }
}
console.log(data_json);

【讨论】:

    【解决方案2】:

    您应该将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"
                }
            }]
        }
      }
    };
    
    var newGroup = {
       "group_name": "test group2",
        "position_info": {
            "position_name": "2",
            "position_type": "tags2",
            "position_value": "some,value",
            "data-free":"false",
            "data-type":"false",
            "data-optional":"false"
        }
    };
    
    data_json.protocol.protocol_body.group.push(newGroup);
    console.log(data_json);

    【讨论】:

      【解决方案3】:

      在您的数据中,“protocol_body”不是一个数组,这就是它不支持推送的原因。 你可以用这个。

      data_json.protocol.protocol_body["Group2"]={"New Group":{"group_name": "test group2"}}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多