Javascript.RU

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

JSON спецсимволы в имени ключа
Объявляю объект таким образом:

var db={
"2|0":"5.3",
"1|1":"22.7"
};


Далее мне необходимо получать значения по ключу и кое-что математически с ними делать. Не работает. Выдает NAN.
Я подозреваю, что нельзя использовать цифры(спецсимволы) в названии ключа. Если это так, как бы это обойти по-проще?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 03.12.2012, 00:47
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

psixojoker,

Работает.
var db={
"2|0":"5.3",
"1|1":"22.7"
};
alert(db["2|0"]);  // 5.3
alert(db["1|1"]);  // 22.7

А выдает NAN потому что вы объявляете строки, а не числа.
var obj = {
 "prop1": "5.3", //если так объявить, то это строка
 "prop2": 5.3   //а это уже число
};

Если нужно преобразовать сторку в число, то используйте методы: parseFloat и parseInt.

Последний раз редактировалось Hoshinokoe, 03.12.2012 в 00:56.
Ответить с цитированием
  #3 (permalink)  
Старый 03.12.2012, 01:23
Интересующийся
Отправить личное сообщение для psixojoker Посмотреть профиль Найти все сообщения от psixojoker
 
Регистрация: 23.03.2012
Сообщений: 12

Я наверное не совсем корректно сформулировал.

Основная проблема в том, что значение нужного мне ключа, находится в другой переменной.

var a="2|0";
var data=db[a];


Так вот data - имеет тип undefined.
Ответить с цитированием
  #4 (permalink)  
Старый 03.12.2012, 01:59
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

гониш

var db={
"2|0":"5.3",
"1|1":"22.7"
};
var a="2|0";
var b="1|1";
alert(db[a]);
alert(db[b]);


проблема скорее в переменной с ключом или там где ты оный формируешь
Ответить с цитированием
  #5 (permalink)  
Старый 03.12.2012, 02:33
Интересующийся
Отправить личное сообщение для psixojoker Посмотреть профиль Найти все сообщения от psixojoker
 
Регистрация: 23.03.2012
Сообщений: 12

хммм..возможно действительно, я как-то не так формирую эту переменную?

a=$(this).attr('name').match(/\d|\d/).toString();


через alert она отображается. однако вставляя её в виде ключа, получаю undefined.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как достать данные из JSON массива? Dimaz jQuery 15 27.11.2012 21:58
Проблемы с jqGrid и JSON massacra_panda Библиотеки/Тулкиты/Фреймворки 1 08.10.2012 16:44
Ajax и Json callback функция borabora Prototype & script.aculo.us 0 30.01.2012 15:01
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10