2016-04-07 53 views
0

我與WP-REST API的工作,我有這個JSON結構的工作:jQuery的:加載Ajax和創建JS對象

[ 
    { 
    "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" 
     }, 

… 

我需要加載該結構的不同崗位,併爲每一個職位目前有關的標識和字體的細節信息對象(通過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存儲的詳細信息有關的信息。

非常感謝

編輯:

是有可能重組JSON對象在一個js對象像關聯數組功能:

喜歡這張

11  //ID 
    A  // zeichen 
    23 // anzahl 
    B 
    46 
    C 
    42 

所以它有可能得到這樣的值: object['11'].A // should get 23

+0

爲什麼不將每個'schrift'推入'schriften'數組? –

+1

你爲什麼複製到一個新的對象?只需使用'data'對象,它就擁有了你所需要的一切。 – Barmar

回答

1

我認爲,正如Barmar所說,您可以使用具有您想要的一切的data變量。但是,如果你想reestructure無論什麼原因,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); 
     } 
    }); 
}); 

我改變jQuery的$.each()爲JavaScript的本地一個forEach,但你可以將$.each如果你想。

+0

非常感謝,是否可以改變對象的結構,如[11]:[A]:23'?再次感謝? – buckdanny

+0

我真的不明白那種結構,你可以用JSON的方式來寫嗎? – Astaroth

+0

非常感謝我編輯了上面的問題,我希望你明白我的意思。 – buckdanny