Javascript JSON元素检测

Javascript JSON元素检测,javascript,json,Javascript,Json,我已经创建了一个字符串 {"atts": [{"name": "wedw"}, {"type": "---"}]} 我根据用户输入将这些元素堆在一个数组中,并将它们附加到另一个字符串,以完成一个JSON对象,该对象被测试为有效 因此,我最终得到了一个名为fields的全局数组,其中包含一堆这些小片段 那么,我如何用一个新名字来改变“weds”这个名字呢?我试过 function changefieldname(pos){ var obj = JSON.parse(jsonstring); va

我已经创建了一个字符串

{"atts": [{"name": "wedw"}, {"type": "---"}]}
我根据用户输入将这些元素堆在一个数组中,并将它们附加到另一个字符串,以完成一个JSON对象,该对象被测试为有效

因此,我最终得到了一个名为fields的全局数组,其中包含一堆这些小片段

那么,我如何用一个新名字来改变“weds”这个名字呢?我试过

function changefieldname(pos){
var obj = JSON.parse(jsonstring);
var oldname = obj.tracelog.fields[pos].atts[0]["name"];
var newname = document.getElementById("newlogfieldname"+pos).value;
fields[pos].replace(oldname, newname);
//writejson();
}

还有一系列的变化。我知道一切都在检查变量pos、oldname和newname的正确中间。我还知道,
fields[pos]
返回我想要更正的数组中的字符串,但它不满意。我还尝试将
字段[pos]
转换为字符串,但replace函数对其不起作用。我相信有一个很好的理由。

为什么还要费心去做一些替换呢?只需为其指定一个新值:

obj.tracelog.fields[pos].atts[0]["name"] = newname;

它不应该仅仅是
obj.tracelog.fields[pos].atts[0].name=newname
?而不是它的编写方式。这些字段是全局定义的,并连续替换tracelog字符串的一部分。但是你的观察让我怀疑这是否有意义,字段应该在函数中定义。这会使你的建议起作用,而且可能更干净。谢谢