我已经将一个json字符串变成了一个带有parseJSON的对象(其中#get_my_json_data是一个输入json的textarea)
var data = jQuery.parseJSON( $("#get_my_json_data").val() );
很酷,我现在有一个对象可以看到整个结构。
我需要做的是改变一个节点的KEY。但是......我不知道它是什么(所以不能只进行字符串化和搜索/替换)。我知道它的确切位置......
这是一个示例结构或textarea中的json。
{
"MasterData": {
"|-|-|ID|-|-|": {
"menu": {
"Tabs": [
{
"Name": "Home",
"TabText": "Home"
},
.........
我需要找到第二项的KEY,在这个例子中,它是:' | - | - | ID | - | - |'
当他们再次编辑时,它会有所不同。那么我怎么能在MasterData之后更新节点密钥并写出整个东西?
我尝试了$ .each循环,但它只是一直在杀死整个阵列'
----更新---
我最终这样做了,效果很好!
var data = jQuery.parseJSON( $("#get_my_json_data").val() );
var keys = Object.keys( data.MasterData );
data.MasterData[$(this).val()] = data.ConteMasterDatatData[keys[0]];
delete data.MasterData[keys[0]];
$("#get_my_json_data").val(JSON.stringify(data));
答案 0 :(得分:1)
如果我理解你想要的东西,你想要替换解析对象中的属性名称。
试试这个:
//Get the keys
var innerkeys = Object.keys(myObject.MasterData);
//Create a property with the information from the first key
myObject["myNewKey"] = myObject.MasterData[innerkeys[0]];
//Delete old property
delete myObject.MasterData[innerkeys[0]];
如果将对象解析为json,它应该与您预期的那样(未经测试)
从以下方面获取的信息: