Как пройти JSON-файл? - PullRequest
       6

Как пройти JSON-файл?

1 голос
/ 03 октября 2011

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, чтобы легко получать данные.

Ответы [ 4 ]

1 голос
/ 03 октября 2011

Это не строка JSON, а, к счастью, стандартный формат YAML.

Вы можете использовать библиотеку YAML для трансформации jSON-подобной строки

0 голосов
/ 03 октября 2011

Ниже приведен простой обход объекта 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>
0 голосов
/ 03 октября 2011

Если вы хотите получить только определенные значения - вам не нужно просматривать весь файл 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

Cheers!

0 голосов
/ 03 октября 2011

Вот довольно простая процедура обхода дерева:

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);

Однако я думаю, что это не совсем то, что вы ищете. Пожалуйста, уточните, и я обновлю свой ответ соответственно.

...