我正在尝试调用对象属性值并将其附加到div" file-path-info"。将JSON数据附加到" file-size-info"作品。我的第二个陈述我做错了什么?
我的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>
答案 0 :(得分: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。
答案 1 :(得分: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);};