正在获取对象的复杂属性值
Getting complex attribute value of object
给定如下json:
{ "rss": {
"page": 1,
"results": [{
"type": "text",
"$": 10
}],
"text": [{
"content": "Lorem ipsum dolor sit amet.",
"author": {
"name": "Cesar",
"email": "cesar@evoria.com"
},
},
{
"content": "Tema Tis rolod muspi merol.",
"author": {
"name": "Cleopatre",
"email": "cleopatre@pyramid.com"
},
}]
}
在javascript中,我可以检索这样的值:
var json = JSON.parse(datajson);
$.each(json.text, function(key, val) {
// this one is ok
var content = val['content'];
// this one does not work
var authorname = val['author.name'];
});
给定字符串格式的属性名称,这是检索复杂对象(例如json.text[0].author.name
)值的一种方法吗?
编辑我想把需要的属性存储在另一个对象中,比如:
[
{ dt: "Text content", dd: "content" },
{ dt: "Author name", dd: "author.name"}
]
您可以按.
分割"索引",并在"段"上循环,在每次迭代中按级别递减。
var obj = {
author : {
name : "AuthorName"
}
}
function get_deep_index(obj, index) {
var segments = index.split('.')
var segments_len = segments.length
var currently_at = obj
for(var idx = 0; idx < segments_len; idx++) {
currently_at = currently_at[segments[idx]]
}
return currently_at
}
console.log(get_deep_index(obj, 'author.name'))
以下内容应该可以解决问题。
var authorname = val['author']['name'];
您也可以将对象本身存储为:
var author = val['author'];
稍后,您可以从中索引属性。
console.log(author.name, author.email)
Yent在带有eval函数的注释中给出了一个很好的提示。我用这种代码来解决我的需求:
var json = JSON.parse(myjsonasastring);
var descriptiontobeadded = [
{ dt: "Text content", dd: "content" },
{ dt: "Author name", dd: "author.name" }
];
$.each(descriptiontobeadded, function(key, val) {
var dt = '<dt>' + val.dt + '</dt>';
description.append(dt);
var dl = '<dd>' + eval('json.' + val.dd) + '</dd>';
description.append(dl);
});
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 如何在 jQuery 中存储复杂对象/Razor 中的数据属性
- 正在获取对象的复杂属性值
- JavaScript 访问对象属性的运行时复杂度 O(?) 是多少?
- 角度JS并将复杂对象数组作为属性传递给指令
- 挖空JS只使复杂对象数组的一个属性可观察
- 如何在 Javascript 中处理具有复杂名称的 JSON 属性
- 如何让WebAPI在不使用C#属性的情况下接受一个复杂对象作为DELETE HTTP谓词的参数
- 从复杂对象中提取选定数组和属性的JS方法/lib
- 复杂的Mongo查询,同时检查多个属性
- 如何从复杂属性中获取变量
- Client -Breeze,创建复杂类型的属性
- 通过javascript使用复杂的css属性
- 复杂的分组和合并数组作为属性