2016-04-07 3 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" 
     }, 

… 

мне нужно загружать различные сообщения этой структуры и создать для каждой должности объект с информаций о ид и шрифту детали (данные, сохраненные с помощью АКФ)

на данный момент у меня есть этот скрипт:

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 и создавать/хранить ее для работы с ней.

Что мне нужно: для каждого загружаемого сообщения: информация об идентификаторе и сведениях, хранящихся в acf.

Большое спасибо

Edit:

возможно перестроить объект 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

Я думаю, что, как сказал Бармар, вы можете использовать переменную 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() для яваскрипта родной один forEach, но вы можете разместить $.each, если вы хотите.

+0

Большое спасибо, возможно ли изменить структуру объекта, например '[11]: [A]: 23'? еще раз спасибо? – buckdanny

+0

Я действительно не понимаю эту структуру, вы можете написать ее в JSON? – Astaroth

+0

спасибо, что я отредактировал вопрос выше, я надеюсь, вы понимаете, что я имею в виду. – buckdanny

Смежные вопросы