我正在使用wp-rest api,我有这个json结构可以使用:
[
{
"id": 11,
"title": {
"rendered": "Test-Font"
},
"acf": {
"schrift": [
{
"zeichen": "A",
"anzahl": "23"
},
{
"zeichen": "B",
"anzahl": "46"
},
{
"zeichen": "C",
"anzahl": "42"
},
{
"zeichen": "D",
"anzahl": "49"
},
{
"zeichen": "E",
"anzahl": "31"
},
…
{
"id": 12,
"title": {
"rendered": "Test-Font2"
},
"acf": {
"schrift": [
{
"zeichen": "A",
"anzahl": "20"
},
{
"zeichen": "B",
"anzahl": "12"
},
…
我需要加载此结构的不同帖子,并为每个帖子创建一个对象,其中包含有关id和字体详细信息的信息(通过acf存储的数据)
目前我有这个脚本:
var schrift = {}
jQuery(function($){
$.ajax({
url: 'http://localhost/wordpress-dev/mi/wp-json/wp/v2/schriften/',
type: "GET",
dataType: "json",
success: function (data) {
$.each(data, function() {
schrift.id = this.id;
$.each(this.acf.schrift, function(key, value) {
schrift.value = value;
});
console.log (schrift);
});
}
})
})
但是在新对象中只存储了一个信息,我如何遍历整个json结构并创建/存储它以使用它。
我需要的是:对于每个加载的帖子:有关id和acf存储的详细信息。
非常感谢
修改
是否可以在js对象中重构json对象,该对象的功能类似于关联数组:
喜欢这个
11 //ID
A // zeichen
23 // anzahl
B
46
C
42
这样就可以得到这样的值:
object['11'].A // should get 23
答案 0 :(得分:1)
我认为,正如Barmar所说,你可以使用拥有你想要的一切的data
变量。但是如果你想以任何理由重组json:
var schrifts = [];//array
jQuery(function ($) {
$.ajax({
url: 'http://localhost/wordpress-dev/mi/wp-json/wp/v2/schriften/',
type: "GET",
dataType: "json",
success: function (data) {
data.forEach(function (element) {
var auxSchrift = {};
auxSchrift.id = element.id;
auxSchrift.acfs = [];//an array in the object
element.acf.schrift.forEach(function (element) {
auxSchrift.acfs.push(element);
});
schrifts.push(auxSchrift);
});
console.log(schrifts);
}
});
});
我为javascript 原生一个$.each()
更改了 jQuery的 forEach
,但如果需要,可以放置$.each
。< / p>