[英]How to retrieve particular data from JSON file using jQuery
我正在嘗試使用jQuery讀取系統中本地存儲的JSON文件。 我想從該文件中獲取一些特定數據。 讓我們假設文件如下所示:
{"statements":[{"subject":{"uriString":"A","localNameIdx":-1},
"predicate":{"uriString":"B","localNameIdx":-1},
"object":{"uriString":"C"}}
這是Java程序編寫的。 我的問題是:如何使用jQuery從此文件中檢索以下數據A, B and C
? 我的讀取JSON文件的代碼是:
var arr = [];
$.getJSON("/Users/docs/sample.json", function(data) {
$.each(data.statements, function(i, val) {
arr.push(val);
}
}
該代碼不會檢索A, B and C
誰能幫助我如何獲取這些元素並將它們存儲在jQuery中的數組中。 您的幫助將不勝感激。
好。 切記JSON(JavaScript對象表示法)只是一個JavaScript對象,上面有一層有趣的外衣。 因此,如果您具有JSON字符串和Jquery,則可以使用parseJSON方法將字符串重新水化為真正代表的對象。
如...
var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );
你應該嘗試這樣的事情
$.each(data.statements[0], function(i, v){
// arr.push(v.uriString);
console.log(v.uriString); // will print A B C
});
但是,在這種情況下,您的object
應如下所示
var data = {
"statements":[
{
"subject":{"uriString":"A","localNameIdx":-1},
"predicate":{"uriString":"B","localNameIdx":-1},
"object":{"uriString":"C","localNameIdx":-1}
}
] // <-- mising in your question
}; // <-- mising in your question
在您的問題中,我沒有找到結尾處的]}
,我認為這是一個錯字,請檢查此示例。
您僅在遍歷data.statements
。 這僅給您一項data.statements.subject
,即{"uriString":"A","localNameIdx":-1}
似乎您想獲取每個項目的uriString
,而不管該項目如何嵌套。 為此,定義一個遞歸函數是最簡單的。
function getUriStrings( obj ){
var results = [];
for(var key in obj){
if(key == "uriString"){
results.push(obj[key]);
}
else if(obj[key] != null && typeof obj[key] === 'object'){
results.push.apply(results, getUriStrings(obj[key]));
}
}
return results;
}
然后您的代碼將是:
var arr = [];
$.getJSON("/Users/docs/sample.json", function(data) {
arr = getUriStrings( data );
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.