从Javascript中的JSON文本中提取值?

时间:2014-09-09 10:14:46

标签: javascript json

我有以下JSON:

{
   "head":{
      "vars":[
         "uri",
         "label"
      ]
   },
   "results":{
      "bindings":[
         {
            "uri":{
               "type":"uri",
               "value":"http://tematres.befdata.biow.uni-leipzig.de/vocab/?tema=751"
            },
            "label":{
               "type":"literal",
               "xml:lang":"en",
               "value":"15n"
            }
         },
         {
            "uri":{
               "type":"uri",
               "value":"http://tematres.befdata.biow.uni-leipzig.de/vocab/?tema=916"
            },
            "label":{
               "type":"literal",
               "xml:lang":"en",
               "value":"16s analysis"
            }
         },
         {
            "uri":{
               "type":"uri",
               "value":"http://tematres.befdata.biow.uni-leipzig.de/vocab/?tema=622"
            },
            "label":{
               "type":"literal",
               "xml:lang":"en",
               "value":"16s rrna"
            }
         },
         {
            "uri":{
               "type":"uri",
               "value":"http://tematres.befdata.biow.uni-leipzig.de/vocab/?tema=917"
            },
            "label":{
               "type":"literal",
               "xml:lang":"en",
               "value":"16s rrna gene analysis"
            }
         },
         {
            "uri":{
               "type":"uri",
               "value":"http://tematres.befdata.biow.uni-leipzig.de/vocab/?tema=618"
            },
            "label":{
               "type":"literal",
               "xml:lang":"en",
               "value":"18s rdna"
            }
         }
      ]
   }
}

有没有办法只在地图左右获取uri值和相应的label值,以便稍后用这些值填充表格。

2 个答案:

答案 0 :(得分:1)

使用map将所需信息提取到数组中。在这里,我已经将标签和URI添加到您可以在需要时循环的对象:

var results = json.results.bindings.map(function (el) {
    return { uri: el.uri.value, label: el.label.value };
});

DEMO

答案 1 :(得分:0)

你可以像

一样迭代
json = "your json";

yourMap = [];
for(var i = 0; i < json.results.bindings.length; i++){ 

    yourMap[i]= [json.results.bindings[i].uri.value, json.results.bindings[i].label.value ];


}
console.log(yourMap);

这里有一个工作小提琴

http://jsfiddle.net/xyek6wda/4/

检查控制台输出,它输出一个包含uri和标签对的数组