2012-11-30 47 views
4

我試圖樣本的JavaScript代碼來調用谷歌的BigQuery API(https://developers.google.com/bigquery/docs/authorization#client-side-javascript如何解析來自BigQuery結果的JSON響應?

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" } 

回答

3

評估和演示是一個安全隱患。

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);​ 
+0

感謝keyboardSmasher答案 – prabu

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