4

サンプルのJavaScriptコードを試してGooglebigQueryAPIを呼び出しました(https://developers.google.com/bigquery/docs/authorization#client-side-javascript

Js:

function runQuery() {
   var request = gapi.client.bigquery.jobs.query({
      'projectId': project_id,
      'timeoutMs': '30000',
      'query': 'SELECT TOP(repository_language, 5) as language, COUNT(*) as count FROM [publicdata:samples.github_timeline] WHERE repository_language != "";'
    });
    request.execute(function(response) {     
        console.log(response);
        var results = response.result.rows ;
        $('#result_box').html(JSON.stringify(results, null));
    });
}

上記の大きなクエリは以下を返します

[{"f":[{"v":"JavaScript"},{"v":"949899"}]},{"f":[{"v":"Ruby"},{"v":"640659"}]},{"f":[{"v":"Java"},{"v":"568202"}]},{"f":[{"v":"Python"},{"v":"484852"}]},{"f":[{"v":"PHP"},{"v":"453830"}]}]

上記の結果の値をJSON形式で解析する方法を教えてください。

{"JavaScript": "949899", "Ruby": "640659", "Java": "568202", "Python": "484852", "PHP": "453830" }
4

3 に答える 3

3

Eval はセキュリティ リスクです。

var text = '[{"f":[{"v":"JavaScript"},{"v":"949899"}]},{"f":[{"v":"Ruby"},{"v":"640659"}]},{"f":[{"v":"Java"},{"v":"568202"}]},{"f":[{"v":"Python"},{"v":"484852"}]},{"f":[{"v":"PHP"},{"v":"453830"}]}]';
myData = JSON.parse(text);
alert(myData[4].f[0].v);​
于 2012-11-30T06:25:55.670 に答える
0

http://jsfiddle.net/jv7vm/

var a='[{"f":[{"v":"JavaScript"},{"v":"949899"}]},{"f":[{"v":"Ruby"},{"v":"640659"}]},{"f":[{"v":"Java"},{"v":"568202"}]},{"f":[{"v":"Python"},{"v":"484852"}]},{"f":[{"v":"PHP"},{"v":"453830"}]}]';

var evala=eval('('+a+')');

for(i=0;i<evala.length;i++)
{
document.write(evala[i].f[0].v+' '+evala[i].f[1].v+'<br>');
}
于 2012-11-30T06:05:26.353 に答える
0

以下のJavaScriptから回答を得ました

var total = response.result.totalRows;
var data = [];
for(i=0; i < total; i++){
            data[i]= [ response.rows[i].f[0]["v"], response.rows[i].f[1]["v"] ];
        }

 console.log(data);
于 2012-11-30T06:49:22.093 に答える