在JSON对象名称中使用变量

时间:2013-06-05 19:43:49

标签: jquery json string variables object

我一直在寻找解决方案,但我似乎无法想出答案,所以希望有人可以提供帮助。

我将这个JSON字符串存储在cookie中,如下所示:

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

我需要根据基于用户输入而变化的特定变量“n”从此cookie中提取值。 我所拥有的是:

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是一个字符串而不是一个对象这一事实有关,但我不知道如何解决它。

2 个答案:

答案 0 :(得分:0)

试试这个 -

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

答案 1 :(得分:0)

您已经在解析cookie内容,无需执行两次:

alert(serviceTripValues[serviceTripStartValue]);

您尝试不起作用的原因是因为您将serviceTripValues视为如此:

serviceTripValues = {
    serviceTripStartValue:'12:00'
}

......事实上,就是这样:

serviceTripValues = {
    serviceTrip3start:'12:00'
}

使用数组表示法允许JavaScript解释存储在String中的serviceTripStartValue,而不是将其视为文字对象键。

干杯