如何在字符串中解析带有http的JSON

时间:2014-01-09 09:07:42

标签: javascript json

我有这个JSON字符串,其中包含URL形式的密钥:

 "{\n  \"http:\/\/it.dbpedia.org\/resource\/Pasadena\" : {
  \"http:\/\/www.w3.org\/2002\/07\/owl#sameAs\" : [ { \"type\" : \"uri\", \"value\" : 
 \"http:\/\/dbpedia.org\/resource\/Pasadena\" } ] } ,\n 
 \"http:\/\/cs.dbpedia.org\/resource\/Pasadena_(rozcestn\\u00EDk)\" : {
 \"http:\/\/www.w3.org\/2002\/07\/owl#sameAs\" : [ { \"type\" : \"uri\", \"value\" : 
 \"http:\/\/dbpedia.org\/resource\/Pasadena\" } ] } ,\n 
 \"http:\/\/de.dbpedia.org\/resource\/Pasadena\" : { 
 \"http:\/\/www.w3.org\/2002\/07\/owl#sameAs\" : [ { \"type\" : \"uri\", \"value\" : 
\"http:\/\/dbpedia.org\/resource\/Pasadena\" } ] } ...

我需要以"http:\/\/www.w3.org\/2002\/07\/owl#sameAs\"作为关键字来获取数组。

我使用JSON.parse()在JS中解析它。但无法找到此密钥。

    var doc = JSON.parse(req.responseText);
    var str = "http://dbpedia.org/ontology/populationTotal";
    var popTotal = doc.str;
    var population = popTotal[0].value;

但是这给出了未定义的预期。如何获取这些字符的值?

1 个答案:

答案 0 :(得分:2)

您正在错误地引用该值。 这条线

var popTotal = doc.str;

应该是

var popTotal = doc[str];

在秒的情况下,它将使用str作为属性名称,在第一个中它将查找名为“str”的属性。