Как мне разобрать этот JSON в Javascript - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть JSON:

{"jobs":[{"name":"PR-BVT","lastBuild":{"result":"SUCCESS","timestamp":1303358462150}},{"name":"PR-DBT-MYSQL","lastBuild":{"result":"SUCCESS","timestamp":1302057202000}},{"name":"PR-DBT-POSTGRESQL","lastBuild":{"result":"SUCCESS","timestamp":1302057202000}},{"name":"PR-FUNCT","lastBuild":{"result":"SUCCESS","timestamp":1303358496244}},{"name":"PR-LOADT","lastBuild":{"result":"SUCCESS","timestamp":1302057202000}},{"name":"PR-MAIN","lastBuild":{"result":"UNSTABLE","timestamp":1303358515506}},{"name":"PR-SECT","lastBuild":{"result":"SUCCESS","timestamp":1302057211000}},{"name":"PR-WEB-BVT","lastBuild":{"result":"SUCCESS","timestamp":1303358471795}},{"name":"praefectus-qa","lastBuild":{"result":"FAILURE","timestamp":1303358496583}},{"name":"praefectus_main","lastBuild":{"result":"FAILURE","timestamp":1303358476843}},{"name":"praefectus_today","lastBuild":{"result":"FAILURE","timestamp":1303358477786}},{"name":"prefectus-qa-1","lastBuild":{"result":"FAILURE","timestamp":1303358480424}},{"name":"pygments","lastBuild":{"result":"SUCCESS","timestamp":1303358482063}},{"name":"test-slave","lastBuild":{"result":"SUCCESS","timestamp":1302057202000}}]}

и это я получил по URL в браузере

http://10.0.1.115:8080/api/json?tree=jobs[name,lastBuild[timestamp,result]]

Что мне нужно сделать, так это перебрать «задания» в этой структуре данных и добавить соответствующие строки в функцию drawChart, которая:

function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('datetime', 'Date');
    data.addColumn('number', 'Builds Passed');
    data.addColumn('string', 'title1');
    data.addColumn('string', 'text1');
    data.addColumn('number', 'Build Failed');
    data.addColumn('string', 'title2');
    data.addColumn('string', 'text2');
    data.addRows([
      [new Date(2011, 1 ,1), 30000, undefined, undefined, 40645, undefined, undefined],
      [new Date(2011, 2 ,2), 14045, undefined, undefined, 20374, undefined, undefined],
      [new Date(2011, 3 ,3), 55022, undefined, undefined, 50766, undefined, undefined],
      [new Date(2011, 4 ,4), 75284, undefined, undefined, 14334, 'Lemco','Build Failed'],
      [new Date(2011, 5 ,5), 41476, 'Build Passed','Tecore', 66467, undefined, undefined],
      [new Date(2011, 6 ,6), 33322, undefined, undefined, 39463, undefined, undefined],
      [new Date(2011, 7 ,6), 33322, undefined, undefined, 39463, undefined, undefined],
      [new Date(2011, 8 ,6), 33322, undefined, undefined, 39463, undefined, undefined],
      [new Date(2011, 9 ,6), 33322, undefined, undefined, 39463, undefined, undefined],
      [new Date(2011, 10 ,6), 33322, undefined, undefined, 39463, undefined, undefined],
      [new Date(2011, 11 ,6), 33322, undefined, undefined, 39463, undefined, undefined],
      [new Date(2011, 12 ,6), 33322, undefined, undefined, 39463, undefined, undefined]
    ]);

Есть идеи, как?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

Хм ... вопрос не говорит о том, что данные поступают из другого домена.Вы можете использовать синтаксический анализатор JSON ( как этот ), чтобы проанализировать ваш результат JSON:

var jsonString = "/*your json here*/";
var result = JSON.parse(jsonString);

, а затем передать result в вашу функцию.Результат будет содержать стандартную структуру данных JavaScript, которую вы можете использовать для доступа к своим данным.Например,

result.jobs[0].name //contains PR-BVT
0 голосов
/ 21 апреля 2011

Использование JSONP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...