Как изменить значение JSON ?
Всем привет!
Имею JSON массив типа этого: data = { "1": { "qq": "ww", "ee": "rr" }, "2": { "qq2": "ww3", "ee4": "rr5" } } И надо поменять одно из значений одного под-массива. Пробую: jsondata["1"]["ww"] = "new value!"; jsondata["1"].ww = "new value!"; setData("1.ww", "new value!"); Любой из этих 3 способ ставит значение "new value!" не только у элемента "ww" из под-массива "1", но и у всех остальных элементов "ww"! Что я делаю не так? :help: Функция setData: function setData(key, val, obj) { if (!obj) obj = data; //outside (non-recursive) call, use "data" as our base object var ka = key.split(/\./); //split the key by the dots if (ka.length < 2) { obj[ka[0]] = val; //only one part (no dots) in key, just set value } else { if (!obj[ka[0]]) obj[ka[0]] = {}; //create our "new" base obj if it doesn't exist obj = obj[ka.shift()]; //remove the new "base" obj from string array, and hold actual object for recursive call setData(ka.join("."),val,obj); //join the remaining parts back up with dots, and recursively set data on our new "base" obj } } |
Оказывается, дело в том что я копировал так:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 10:25. |