javascript - JSON 连接

标签 javascript json concatenation

如何转换此 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);

演示:http://jsfiddle.net/Wv3vH/

注意:以上数据尝试比较两个长度相等的数组。由于#text数组比highlight数组大1,因此存在一个未定义的值,由于 bool 逻辑检查该值是否存在而不会显示该值。

关于javascript - JSON 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318251/

相关文章:

string - mustache.js日期格式

javascript - Angular - 如何连接变量名称

python - numpy array - 使用 np.concatenate 或 np.insert 将零行添加到 ndarray

带空格的字符串连接

javascript - Jasmine 异步测试问题

javascript - 找到死的 JavaScript 代码?

javascript - 比较两个对象 QUnit Javascript

php - PHP/JavaScript/.NET 中的 MAC 地址?

javascript - Leaflet Javascript动态添加文件作为对象

ios - 使用我的 swift 4 应用程序将 json 数组保存在 firebase 中