如何转换此 JSON 对象:
"context":{"#text":["Most Visited Pages ","
Hall Residents Advanced Components"," Clerk"],"highlight":["City","City"]}
进入:
Most Visited Pages <highlight>City</highlight>
Hall Residents Advanced Components <highlight>City</highlight> Clerk
通过使用 JavaScript?
我已经尝试过:
function highlightContext_22(context) {
var highlighted;
$.each(context['#text'], function(key, val) {
highlighted += val + val.highlight;
});
return highlighted;
}
输出是:
undefinedMost Visited Pages undefined
Hall Residents Advanced Components undefined Clerkundefined
最佳答案
属性val.highlight
不存在,这就是您未定义的原因。您的对象具有 #text
键的数组值。 highlight
键是一个单独的属性,因此无法在当前上下文中访问。
下面的解决方案更正引用以允许引用highlight
值。 出于说明目的,我添加了其他指标。
JavaScript:
var obj = {
"context": {
"#text": [
"Most Visited Pages ",
" Hall Residents Advanced Components",
" Clerk"
],
"highlight": [
"City",
"City"
]
}
};
var result = [];
var data = obj.context;
for(var i=0; i < data['#text'].length; i++){
result[i] = data['#text'][i] + (data.highlight[i] ? '<highlight>' + data.highlight[i] + '</highlight>' : '');
}
document.getElementById('result').innerHTML = result.join('');
alert(document.getElementById('result').innerHTML);
注意:以上数据尝试比较两个长度相等的数组。由于#text
数组比highlight
数组大1,因此存在一个未定义的值,由于 bool 逻辑检查该值是否存在而不会显示该值。
关于javascript - JSON 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318251/