Javascript 访问json元素数组
在此进行工作演示: 我在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)); }); 调用将返回此值: {
输入中:
$.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="{"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"],"Ticket Site Feedback":["Web"]}" 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']);