-3
サーバーに照会すると、JSONファイルが返されます。私が返すJSONファイルは次の形式になります。JSONデータはどのように使用しますか?
{
"head": {
"link": [],
"vars": ["bookName", "author"]
},
"results": {
"distinct": false,
"ordered": true,
"bindings": [
{
"bookName": {
"type": "literal",
"xml:lang": "en",
"value": "Of Mice and Men"
},
"author": {
"type": "literal",
"xml:lang": "en",
"value": "John Steinbeck"
}
}
]
}
}
これは私がこれまでに行っているものです:私が行うことができるようにしたいどのような
$.ajax({
dataType: "jsonp",
url: queryUrl,
success: function(data) {
// get the table element
var table = $("#results");
// get the sparql variables from the 'head' of the data.
var headerVars = data.head.vars;
// using the vars, make some table headers and add them to the table;
var trHeaders = getTableHeaders(headerVars);
table.append(trHeaders);
// grab the actual results from the data.
var bindings = data.results.bindings;
var book = data.results.bindings[1].bookName.value;
// for each result, make a table row and add it to the table.
var numberOfBooks = 0;
for(rowIdx in bindings){
table.append(getTableRow(headerVars, bindings[rowIdx]));
numberOfBooks++;
}
document.getElementById("searched-for").innerHTML="<h1>You seach for " + '"' + input + '"' + " and we found " + numberOfBooks + " books </h1>";
}
});
は次のようなものです:
var book = data.results.binding[1].bookName.value;
配列はゼロインデックスされているので、 'bindings [1]'は* second *要素を選択します(1つしかありません)。それは問題ですか? – JJJ
これはJSONではない、これはjavascriptオブジェクトです。 'for 'を使うのではなく' forEach or map'メソッドを使うようにしてください。 @JJJは配列内の唯一のオブジェクトを持っているので、[1]ではなく[0] –