2017-05-16 28 views
1

我想调用一个对象属性值并将其附加到div“文件路径信息”。将JSON数据附加到“文件大小信息”的功能起作用。我的第二个陈述我做错了什么?问题使用Jquery和Javascript调用JSON对象属性值

我的JSON数据:

{"maxFileSize" : "10 MB", "fileList" : [{"fileName" : "1_Exterior Cabinet_Cabinet C_Economizer_Econ_Exhaust_Gas Heat", "href" : "../Images/1_Exterior Cabinet_Cabinet C_Economizer_Econ_Exhaust_Gas Heat.jpg"}]} 

HTML和JavaScript

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

<div id="file-size-info"></div> 
<div id="file-path-info"></div> 

<script> 

    $.getJSON('http://localhost/MISREST/helpdocs', function (data) { 
    $.each(JSON.parse(data), function (key, val) { 
    if (key == "maxFileSize") {$("#file-size-info").append(val);}; 

     if (key == "fileList") {$("#file-path-info").append(["fileList"]["href"]);}; 

    }); 
    }); 

</script> 
+2

'[“的fileList” ] [“href”]'? – Santi

回答

2

应该

if (key == "fileList") { 
    $("#file-path-info").append(val[0]["href"]); 
}; 

假设你只有在fileList有一个值,如果没有,那么你需要循环的值。

作为fileList键,val给你

[ 
    { 
    "fileName": "1_Exterior Cabinet_Cabinet C_Economizer_Econ_Exhaust_Gas Heat", 
    "href": "../Images/1_Exterior Cabinet_Cabinet C_Economizer_Econ_Exhaust_Gas Heat.jpg" 
    } 
] 

,然后你需要从第一对象中提取HREF。

+0

注意:这是假设OP只想显示'fileList'数组中的第一个元素。而不是整个文件列表。 – shotor

+0

在第二种情况下,他应该映射数组值,如果OP返回更新的问题,我将更新答案 –

1
if (key == "maxFileSize") {$("#file-size-info").append(val);}; 

在代码maxFileSize该块是关键,val是属性(字符串10 MB)的值。

遵循该模式,当fileList是关键时,val将是该属性的值:[{"fileName" : "1_Exterior Cabinet_Cabinet C_Economizer_Econ_Exhaust_Gas Heat", "href" : "../Images/1_Exterior Cabinet_Cabinet C_Economizer_Econ_Exhaust_Gas Heat.jpg"}](包含作为对象的单个项目的数组)。

你需要索引数组,以获得在索引0(唯一的项目)项目,并抢在为了使用它该对象的href属性的值:

if (key == "fileList") {$("#file-path-info").append(val[0].href);};