Javascript 使用变量从JSON对象获取值

Javascript 使用变量从JSON对象获取值,javascript,jquery,json,Javascript,Jquery,Json,我有下面的getJSON,运行良好。我决定根据用户选择的内容更改页面上显示的数据。我有一个基于用户选择设置cookie的函数。我想获取这个cookie的值,并使用它从JSON对象获取特定的值 cookie的值被检索并存储在cohort1中 $.getJSON('all_get_login.php?cat_code=stocks&sortvalue=value&sortorder=asc', function(data) { $.each(data, function(ke

我有下面的
getJSON
,运行良好。我决定根据用户选择的内容更改页面上显示的数据。我有一个基于用户选择设置cookie的函数。我想获取这个cookie的值,并使用它从JSON对象获取特定的值

cookie的值被检索并存储在
cohort1

$.getJSON('all_get_login.php?cat_code=stocks&sortvalue=value&sortorder=asc', function(data) {
    $.each(data, function(key, val) {
        if (val.value == "Yes") {
            var cohort1 = readCookie('cohort_id_1');
            console.log(cohort1); //gives expected result
            var databaseYes = val.cohort1; //THIS LINE IS THE PROBLEM
            var databaseNo = 100 - databaseYes;
            $("#yes_stocks_db").append(databaseYes + "%");
            $("#no_stocks_db").append(databaseNo + "%");
    });
});
我的JSON对象如下所示:

[
    {
        "cat_code": "stocks",
        "group": "fin",
        "main_grouping": "Financial",
        "highest_level": "Financial",
        "category": "Invests in Stocks and Bonds",
        "value": "No",
        "database_percent": "38.90",
        "cohort_1": "43.88",
        "cohort_2": "27.66",
        "national_percent": "30.16"
    },
    {
        "cat_code": "stocks",
        "group": "fin",
        "main_grouping": "Financial",
        "highest_level": "Financial",
        "category": "Invests in Stocks and Bonds",
        "value": "Yes",
        "database_percent": "61.10",
        "cohort_1": "56.37",
        "cohort_2": "72.34",
        "national_percent": "70.10"
    }
]

问题是:在我的
getJSON
行中,有这个
var-databaseYes=val.cohort1,脚本正在JSON对象中查找与“cohort1”匹配的内容,该内容永远不会出现在对象中。这里我需要的是var
cohort1
的值,而不是实际的文本“cohort1”。如何更改此行以适应此情况?

您可以使用对象表示法将变量作为属性名传递

var cohort1 ='foo';
var databaseYes = val[cohort1];

这相当于
val.foo

您的if块是否缺少右大括号?@rorymcrossan有一个
$。每个
循环there@RoryMcCrossan如果我将这一行更改为(例如):
var-databaseYes=val.database\u%如果“database_percent”是JSON对象中的某个内容,那么它就可以正常工作。问题是当我试图在其中传递一个变量而不是从实际的JSON中传递某个变量时。我想你的意思可能是
var-databaseYes=val[cohort1]
?目标不容易理解。也许cookie的一个示例值help@charlietfl就是这样。谢谢请张贴作为一个答案,这样我可以接受。