从Javascript中的JSON文本中提取值

Extract values from JSON text in Javascript?

本文关键字:提取 文本 JSON Javascript 中的      更新时间:2023-09-26

我有以下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值,以便稍后用这些值填充表格。

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

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

DEMO

您可以像一样简单地迭代

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和标签对

的数组