Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.12.2010, 04:23
Новичок на форуме
Отправить личное сообщение для нечто Посмотреть профиль Найти все сообщения от нечто
 
Регистрация: 01.12.2010
Сообщений: 2

Как изменить значение 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"!

Что я делаю не так?



Функция 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
		}
	}
Ответить с цитированием
  #2 (permalink)  
Старый 01.12.2010, 18:10
Новичок на форуме
Отправить личное сообщение для нечто Посмотреть профиль Найти все сообщения от нечто
 
Регистрация: 01.12.2010
Сообщений: 2

Оказывается, дело в том что я копировал так:
Цитата:
data[new_id] = data[id];
А надо так:
Цитата:
data[new_id] = JSON.parse(JSON.stringify(data[id]));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как проверить значение чекбокса KonstantinK Элементы интерфейса 2 17.07.2010 13:30
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
Как изменить положение scrollbara PAMAC Общие вопросы Javascript 2 15.02.2010 12:03
как изменить window.location и что бы страница не перегрузилась? goll3 Events/DOM/Window 1 21.08.2009 17:17