在 jquery/underscore.js 的对象中访问对象
Accessing an object within an object for jquery/underscore.js
不敢相信事实证明这如此困难。
我有以下 JSON:
{"1440071374-Bane breathing.jpg":{"filename":"1440071374-Bane
breathing.jpg","alt":"This is bane","primary":true,"caption":"This is
Banecat, the worst enemy of Batcat"}}
我已将其转换为具有以下下划线语法的对象:
_.each(results, function(r) {
var obj = JSON.parse(r.images)
伪装如下:
if primary exists and is true {
var img = filename
我原以为这只是 obj[0].filename 的一项明显工作,但显然不是,我已经坚持了一段时间了。
非常感谢任何帮助。
周末过后我又回到了这个问题,我注意到 JSON 没有被视为对象:
<%
_.each(results, function(r) {
var a = r.images;
_.isObject(a); // strangely now resulting in false????
_.isString(a); // true
当我使用下划线语法 <%= r.images %>
将 JSON 回显到页面上时,我得到了我粘贴在该问题顶部的 json 。可能是因为结果来自需要首先解析的请求?
您的JSON已经是对象(字典)了。您需要做的就是迭代并验证 primary
是否为 true
,如果是,则将 filename
值分配给 var img
var a = {"1440071374-Bane breathing.jpg":{"filename":"1440071374-Bane breathing.jpg","alt":"This is bane","primary":true,"caption":"This is Banecat, the worst enemy of Batcat"}};
for (items in a) {
if (a[items]['primary'] == true) {
var img = a[items]['filename'];
alert(img); // <-- will display 1440071374-Bane breathing.jpg in this example
}
}
JSFiddle 中的相同代码。尝试不同的值。
为什么不动态添加src
?添加以下代码,它应该可以工作。确保您有一个具有唯一 ID
的 <img>
元素
document.getElementById('imgId').src = "example.com/" + img;
我也在上面fiddle中编辑了代码。
不敢相信事实证明这如此困难。
我有以下 JSON:
{"1440071374-Bane breathing.jpg":{"filename":"1440071374-Bane breathing.jpg","alt":"This is bane","primary":true,"caption":"This is Banecat, the worst enemy of Batcat"}}
我已将其转换为具有以下下划线语法的对象:
_.each(results, function(r) { var obj = JSON.parse(r.images)
伪装如下:
if primary exists and is true {
var img = filename
我原以为这只是 obj[0].filename 的一项明显工作,但显然不是,我已经坚持了一段时间了。
非常感谢任何帮助。
周末过后我又回到了这个问题,我注意到 JSON 没有被视为对象:
<%
_.each(results, function(r) {
var a = r.images;
_.isObject(a); // strangely now resulting in false????
_.isString(a); // true
当我使用下划线语法 <%= r.images %>
将 JSON 回显到页面上时,我得到了我粘贴在该问题顶部的 json 。可能是因为结果来自需要首先解析的请求?
您的JSON已经是对象(字典)了。您需要做的就是迭代并验证 primary
是否为 true
,如果是,则将 filename
值分配给 var img
var a = {"1440071374-Bane breathing.jpg":{"filename":"1440071374-Bane breathing.jpg","alt":"This is bane","primary":true,"caption":"This is Banecat, the worst enemy of Batcat"}};
for (items in a) {
if (a[items]['primary'] == true) {
var img = a[items]['filename'];
alert(img); // <-- will display 1440071374-Bane breathing.jpg in this example
}
}
JSFiddle 中的相同代码。尝试不同的值。
为什么不动态添加src
?添加以下代码,它应该可以工作。确保您有一个具有唯一 ID
<img>
元素
document.getElementById('imgId').src = "example.com/" + img;
我也在上面fiddle中编辑了代码。