Javascript 访问json元素数组

Javascript 访问json元素数组,javascript,jquery,json,Javascript,Jquery,Json,在此进行工作演示: 我在json上检索一个数组,并使用以下函数将其存储在一个隐藏的输入中: $.post("http://"+ document.domain + baseUrl + "/tickets/getCategoryDepartmentRelation/", function(dat){ $('#departmentsByCategory_array').val(JSON.stringify(dat)); }); 调用将返回此值: {

在此进行工作演示:

我在json上检索一个数组,并使用以下函数将其存储在一个隐藏的
输入中:

$.post("http://"+ document.domain + baseUrl + "/tickets/getCategoryDepartmentRelation/",
    function(dat){
        $('#departmentsByCategory_array').val(JSON.stringify(dat));         
});
调用将返回此值:

{
    "Investigation Request": [
        "Client server",
        "Interface",
        "Engine"
    ],
    "Configure Planning": [
        "Interface",
        "Engine"
    ],
    "Bug Report": [
        "Client server",
        "Interface",
        "Engine",
        "Database"
    ],
    "Development Request": [
        "Interface",
        "Dev Management",
        "Database",
        "Client server",
        "Engine"
    ],
    "Suggestion Box": [
        "Dev Management"
    ],
    "Post Site Feedback": [
        "Web"
    ]
}
这是此数组的
json
表示形式:

Array
(
    [Investigation Request] => Array
        (
            [0] => Client server
            [1] => Interface
            [2] => Engine
        )

    [Configure Planning] => Array
        (
            [0] => Interface
            [1] => Engine
        )

    [Bug Report] => Array
        (
            [0] => Client server
            [1] => Interface
            [2] => Engine
            [3] => Database
        )

    [Development Request] => Array
        (
            [0] => Interface
            [1] => Dev Management
            [2] => Database
            [3] => Client server
            [4] => Engine
        )

    [Suggestion Box] => Array
        (
            [0] => Dev Management
        )

    [Post Site Feedback] => Array
        (
            [0] => Web
        )

)
这将用以下数据填充
输入

<input type="hidden" name="demo" value="{&quot;Investigation Request&quot;:[&quot;Client server&quot;,&quot;Interface&quot;,&quot;Engine&quot;],&quot;Configure Planning&quot;:[&quot;Interface&quot;,&quot;Engine&quot;],&quot; Bug Report&quot;:[&quot;Client server&quot;,&quot;Interface&quot;,&quot;Engine&quot;,&quot;Database&quot;],&quot; Development Request&quot;:[&quot;Interface&quot;,&quot;Dev Management&quot;,&quot;Database&quot;,&quot;Client server&quot;,&quot;Engine&quot;],&quot;Suggestion Box&quot;:[&quot;Dev Management&quot;],&quot;Ticket Site Feedback&quot;:[&quot;Web&quot;]}" id="departmentsByCategory_array">
但我尝试只检索一个元素的值,例如“configureplanning”


如何在Javascript或jQuery中处理这些值?(循环,比较…

我发现了问题。您将在json表示中返回一个额外的空间,因此您要访问的是
“Bug Report”
,而不是
“Bug Report”

修改小提琴:

这同样适用于键
“开发请求”


但我想要的只是子阵列。例如“配置规划”。我怎么能得到它?它对我不起作用。使用
警报
控制台.log
功能打印时,会得到一个“未定义”值。虽然
data
值是一个数组,我可以在控制台中看到它的打印。@Steve您的小提琴包含json的表示,而不是实际的json字符串。您正在提醒一个字符串。隐藏输入字段中的硬编码值不是JSON。我假设它是您在“调用返回此值:@janith”下提到的JSON对象:@janith我在创建小提琴时出错,对不起。但它被正确地发布在这里。为什么要在输入中存储json字符串?
$('#departmentsByCategory_array').val();
var data = JSON.parse($('#departmentsByCategory_array').val());
data['Configure Planning']; //returns Configure Planning array
alert(data[' Bug Report']);
alert(data[' Development Request']);