Javascript JSON解析在jQuery中不起作用

Javascript JSON解析在jQuery中不起作用,javascript,jquery,json,Javascript,Jquery,Json,我在表单上有一个id为search\u json的文本字段,其中包含: {"standard_id":"2","attribute1":["","Stan"],"attribute2":[""],"attribute3":["","Air Force"],"attribute4":["","Bob"],"selected_index":3} 在发生某些事件时,称之为按钮单击,我想: 1) 读入该JSON并将其解析为一个对象: search_json = $.parseJSON($("#sear

我在表单上有一个id为
search\u json
的文本字段,其中包含:

{"standard_id":"2","attribute1":["","Stan"],"attribute2":[""],"attribute3":["","Air Force"],"attribute4":["","Bob"],"selected_index":3}
在发生某些事件时,称之为按钮单击,我想:

1) 读入该JSON并将其解析为一个对象:

search_json = $.parseJSON($("#search_json").val())
2) 从对象中删除“attribute1”

delete search_json["attribute1"]
3) 将JSON写回文本字段:

$("#search_json").val(JSON.stringify(search_json))
不过,我有点惊讶它不起作用。
delete
调用不执行任何操作。事实上,

search_json.hasOwnProperty("attribute1")
返回
false
。但我可以将对象记录到控制台,它确实是一个具有这些值的对象。这里出了什么问题

更新:实际上,

search_json.hasOwnProperty("attribute1")
确实有效。但是,如果我从另一个文本字段获取属性名称,如下所示:

attribute_name = $("#attribute_name").attr("id")
以及:

显示“attribute1”,则此操作无效:

search_json.hasOwnProperty(attribute_name)

返回FALSE。神秘化。

我会尝试创建一个新的result\u json对象

var result_json = {};
for (var prop in search_json) {
    if (prop !== 'attribute1') {
        result_json[prop] = search_json[prop];
    }
}
$("#search_json").val(JSON.stringify(result_json));

我不明白。我用的是你的小提琴密码,一切都是正确的

最后一个目标是:

attribute2: Array[1]
attribute3: Array[2]
attribute4: Array[2]
selected_index: 3
standard_id: "2"
属性1被正确删除

你能创建一个灌木吗
attribute2: Array[1]
attribute3: Array[2]
attribute4: Array[2]
selected_index: 3
standard_id: "2"