2013-06-05 4 views
0

Я искал решение для этого, но я не могу найти ответ, так что надеюсь, что кто-то здесь может помочь.Использование переменной в объекте JSON. Имя

У меня есть эта JSON строки, хранящейся в куки, как так:

$.cookie('serviceTrip', JSON.stringify(serviceTrip)); 

Мне нужно извлечь значение из этого печенья, основываясь на определенной переменной «п», что изменения на основе пользовательского ввода. Что у меня есть:

var n = 3; 
var serviceTripValues = JSON.parse($.cookie('serviceTrip')); 
var serviceTripStartValue = 'serviceTrip'+n+'start'; 
alert(serviceTripStartValue); //this produces serviceTrip3start 
alert(JSON.parse($.cookie('serviceTrip')).serviceTrip3start); // this produces 12:00 as expected 
alert(JSON.parse($.cookie('serviceTrip')).serviceTripStartValue); // this produces 'undefined' 

Я не могу понять это ... Я думаю, что это что-то делать с тем фактом, что serviceTripStartValue является строкой, а не объектом, но я не знаю, как решить ее ,

ответ

0

Попробуйте это -

alert(JSON.parse($.cookie('serviceTrip'))[serviceTripStartValue]); 
+0

OMG - это было! Я ударился головой об этом. Спасибо! – user2457152

+0

@ user2457152 .. Добро пожаловать! –

0

Вы уже разборе содержимого печенья, нет необходимости делать это дважды:

alert(serviceTripValues[serviceTripStartValue]); 

Причина ваша попытка не работает, потому что вы лечения serviceTripValues, как если бы это было так:

serviceTripValues = { 
    serviceTripStartValue:'12:00' 
} 

... когда на самом деле, то это:

serviceTripValues = { 
    serviceTrip3start:'12:00' 
} 

Использование нотации массива позволяет JavaScript интерпретировать String хранится в serviceTripStartValue вместо лечения его в качестве буквального ключа объекта.

Cheers

+0

Да - спасибо за добавленное разъяснение. Я думаю, я понимаю, в чем проблема теперь ... и я не буду разбирать куки дважды, это было просто для демонстрационных целей. – user2457152

Смежные вопросы