Javascript 如何修改JSON数组?

Javascript 如何修改JSON数组?,javascript,jquery,json,Javascript,Jquery,Json,如何更新以下多维JSON数组中特定索引处的值 我想更新放置在footer\u徽标节点内的背景图像的值 { "Machine1": { "sidebar_inner": { "img": "img/pill.png", "background-color": "#ffffff", "side_logo": { "background-image": "../footer_

如何更新以下多维JSON数组中特定索引处的值

我想更新放置在
footer\u徽标
节点内的
背景图像
的值

{
    "Machine1": {
        "sidebar_inner": {
            "img": "img/pill.png",
            "background-color": "#ffffff",
            "side_logo": {
                "background-image": "../footer_logo.png"
            }
        },
        "lb_footer": {
            "img": "img/bin.png",
            "footer_logo": {
                "background-image": "..img/footer_logo.png"
            }
        },
        "machine_stand": {
            "img": "img/machine_stand.png"
        },
        "side": {
            "backgroundcolor": "#ccc"
        }
    }
}

我添加了一个JSFIDLE示例。很简单,看看下面的代码

var myJson = {
        "Machine1": {
            "sidebar_inner": {
                "img": "img/pill.png",
                "background-color": "#ffffff",
                "side_logo": {
                    "background-image": "../footer_logo.png"
                }
            },
            "lb_footer": {
                "img": "img/bin.png",
                "footer_logo": {
                    "background-image": "..img/footer_logo.png"
                }
            },
            "machine_stand": {
                "img": "img/machine_stand.png"
            },
            "side": {
                "backgroundcolor": "#ccc"
            }
        }
    };

    myJson.Machine1.lb_footer.footer_logo['background-image'] = 'New value.';

    alert(myJson.Machine1.lb_footer.footer_logo['background-image']);

我添加了一个JSFIDLE示例。很简单,看看下面的代码

var myJson = {
        "Machine1": {
            "sidebar_inner": {
                "img": "img/pill.png",
                "background-color": "#ffffff",
                "side_logo": {
                    "background-image": "../footer_logo.png"
                }
            },
            "lb_footer": {
                "img": "img/bin.png",
                "footer_logo": {
                    "background-image": "..img/footer_logo.png"
                }
            },
            "machine_stand": {
                "img": "img/machine_stand.png"
            },
            "side": {
                "backgroundcolor": "#ccc"
            }
        }
    };

    myJson.Machine1.lb_footer.footer_logo['background-image'] = 'New value.';

    alert(myJson.Machine1.lb_footer.footer_logo['background-image']);
试试这个。工作

试试这个。工作


要更新嵌套值,您需要将键(索引用于数组)链接在一起以找到合适的值

以下是代码,其格式便于使用:

var obj = {"Machine1": {
    "sidebar_inner": {
        "img": "img/pill.png",
        "background-color": "#ffffff",
        "side_logo": {
            "background-image": "../footer_logo.png"
        }
    },
    "lb_footer": {
        "img": "img/bin.png",
        "footer_logo": {
            "background-image": "..img/footer_logo.png"
        }
    },
    "machine_stand": { 
        "img": "img/machine_stand.png"
    }, 
    "side": {
        "backgroundcolor":"#ccc"
    }
}}
例子 要更新“footer_logo”的背景图像:
obj.Machine1.lb_footer,footer_logo.background-image=“something new”

要更新“机器支架”img:


要更新嵌套值,您需要将键(索引用于数组)链接在一起以找到合适的值

以下是代码,其格式便于使用:

var obj = {"Machine1": {
    "sidebar_inner": {
        "img": "img/pill.png",
        "background-color": "#ffffff",
        "side_logo": {
            "background-image": "../footer_logo.png"
        }
    },
    "lb_footer": {
        "img": "img/bin.png",
        "footer_logo": {
            "background-image": "..img/footer_logo.png"
        }
    },
    "machine_stand": { 
        "img": "img/machine_stand.png"
    }, 
    "side": {
        "backgroundcolor":"#ccc"
    }
}}
例子 要更新“footer_logo”的背景图像:
obj.Machine1.lb_footer,footer_logo.background-image=“something new”

要更新“机器支架”img:



请尽量清楚地描述你的问题,目前它还不清楚和模糊。
obj[findex][sindex][tindex]=myvalue
迂腐:这不是一个JSON数组,它是一个JS对象,类似于其他语言中的哈希映射。@AyazShakoor,请查看我对背景图像页脚标志的回答。请清楚地描述你的问题,现在还不清楚也不清楚。
obj[findex][sindex][tindex]=myvalue
学究气:这不是一个JSON数组,它是一个JS对象,类似于其他语言中的哈希映射。@AyazShakoor,请看我对背景图像页脚标志的回答。
lb_页脚
是两次,没有
footer\u logo
lb\u footer
是两倍,没有
footer\u logo
为什么要先把数据放在字符串中,然后再解析它?我不明白。首先,为了演示,第二,如果不解析它,就不能将其作为对象访问。或者你的意思是,为什么不直接在解析字符串中注入它呢?我不知道你所说的直接在解析字符串中是什么意思。但是您可以省略引号,然后就不需要解析了。缝合其他答案。哦,我明白了。我这样做是因为我不确定这是来自AJAX还是javascript。我只是想演示一下,如果它是一个字符串怎么办。为什么先把数据放在字符串中,然后再解析它呢?我不明白。首先,为了演示,第二,如果不解析它,就不能将其作为对象访问。或者你的意思是,为什么不直接在解析字符串中注入它呢?我不知道你所说的直接在解析字符串中是什么意思。但是您可以省略引号,然后就不需要解析了。缝合其他答案。哦,我明白了。我这样做是因为我不确定这是来自AJAX还是javascript。我只是想演示一下,如果它是一个字符串呢。
obj.machine_stand.img = "new/link.jpg";
// or use 'bracket notation', it's the same thing
obj['machine_stand']['img'] = "new/link.jpg"