如何遍历JSON文件

How to traverse a JSON file?

本文关键字:JSON 文件 遍历 何遍历      更新时间:2023-09-26

我的JSON如下所述:-

{   head: {
    link: [],
    vars: [
      "CompanyName",
      "Company_Name",
      "Foundation_URI",
      "Foundation_Name",
      "Latitude",
      "Longitude"
    ]   },   results: {
    distinct: false,
    ordered: true,
    bindings: [
      {
        CompanyName: {
          type: "uri",
          value: "http://dbpedia.org/resource/United_Christian_Broadcasters"
        },
        Company_Name: {
          type: "literal",
          xml:lang: "en",
          value: "United Christian Broadcasters"
        },
        Foundation_URI: {
          type: "uri",
          value: "http://dbpedia.org/resource/Christchurch"
        },
        Foundation_Name: {
          type: "literal",
          xml:lang: "en",
          value: "Christchurch"
        },
        Latitude: {
          type: "typed-literal",
          datatype: "http://www.w3.org/2001/XMLSchema#float",
          value: "-43.52999877929688"
        },
        Longitude: {
          type: "typed-literal",
          datatype: "http://www.w3.org/2001/XMLSchema#float",
          value: "172.6202850341797"
        }
      },
      {
        CompanyName: {
          type: "uri",
          value: "http://dbpedia.org/resource/United_Christian_Broadcasters"
        },
        Company_Name: {
          type: "literal",
          xml:lang: "en",
          value: "UCB Media"
        },
        Foundation_URI: {
          type: "uri",
          value: "http://dbpedia.org/resource/Christchurch"
        },
        Foundation_Name: {
          type: "literal",
          xml:lang: "en",
          value: "Christchurch"
        },
        Latitude: {
          type: "typed-literal",
          datatype: "http://www.w3.org/2001/XMLSchema#float",
          value: "-43.52999877929688"
        },
        Longitude: {
          type: "typed-literal",
          datatype: "http://www.w3.org/2001/XMLSchema#float",
          value: "172.6202850341797"
        }
      },
      {
        CompanyName: {
          type: "uri",
          value: "http://dbpedia.org/resource/Kathmandu_%28company%29"
        },
        Company_Name: {
          type: "literal",
          xml:lang: "en",
          value: "Kathmandu"
        },
        Foundation_URI: {
          type: "uri",
          value: "http://dbpedia.org/resource/Christchurch"
        },
        Foundation_Name: {
          type: "literal",
          xml:lang: "en",
          value: "Christchurch"
        },
        Latitude: {
          type: "typed-literal",
          datatype: "http://www.w3.org/2001/XMLSchema#float",
          value: "-43.52999877929688"
        },
        Longitude: {
          type: "typed-literal",
          datatype: "http://www.w3.org/2001/XMLSchema#float",
          value: "172.6202850341797"
        }
      }
    ]   } }

我想知道如何遍历这个JSON以获得JSON文件中提到的适当变量的值。我想知道这方面的JavaScript以及Java。请让我知道如何遍历这个JSON以便轻松获取数据。

这不是一个JSON字符串,但幸运的是一个YAML标准格式。

您可以使用YAML库横向传递json类型的字符串

下面是一个相当简单的树遍历例程:

function traverse(o) {
  if( o instanceof Object ) {
    for( key in o ) {
      traverse(o[key]);
    }
  }
  else if( o instanceof Array ) {
    for( value in o ) {
      traverse(value);
    }
  }
  else {
    console.log(o);
  }
}
var q = { name : 'me', data : [ { a: 'a1', b: 'b1' }, { a: 'a2', b: 'b2'} ] };
traverse(q);

然而,我认为这不是你想要的。请澄清,我将相应更新我的回答。

下面是一个简单的JSON对象遍历,这应该有助于您理解JSON对象的正常遍历。查看https://github.com/substack/js-traverse链接获取详细的教程,了解如何复杂地遍历任何javascript对象

<script language="javascript"> 
var emp = {"details" : [
             {
             "Name" : "Nitin1",
             "Salary" : 10000, 
             "DOJ" : "16th Sept 2010"
             }
            ,
             {"Name" : "Abhijit2", 
             "Salary" : 5000, 
             "DOJ" : "15th Sept 2010"}
            ,
             {"Name" : "Nilesh", 
             "Salary" : 50000, 
             "DOJ" : "10th Sept 2010"}
            ]
    };
document.writeln("<table border='1'><tr><td>Name</td><td>Salary</td><td>DOJ</td></tr>");
var i=0;
for(i=0;i<emp.details.length; i++)
{
  document.writeln("<tr><td>" + emp.details[i].Name + "</td>");
  document.writeln("<td>" + emp.details[i].Salary +"</td>");
  document.writeln("<td>" + emp.details[i].DOJ +"</td></tr>");
}
document.writeln("</table>");

</script>

如果您只想检索特定的值-您不需要遍历整个JSON文件。

在Javascript中可以这样做:

声明的JSON变量:

var myJSONObject = {"bindings": [
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
};

获取特定值:

myJSONObject.bindings[0].method    // "newURI"

完整的参考资料,请点击这里。

我自己不使用Java,但是XML. Java(这里有文档)允许您将JSON转换为XML。解析XML很容易——您可以找到大量的Java教程,例如:

http://www.seas.gwu.edu/~ simhaweb/java/xml/xml.html

干杯!