Результат: [object], [object] после того, как импортировали архив JSON

У меня есть проблема, чтобы получать данные об архиве JSON, когда я пробую получать данные об этом архиве, я получаю в результате: [object], [object]

{
  "categories": [
    {
      "categori_id": 1,
      "name": "drinks"
    },
    {
      "categori_id": 2,
      "name": "lunch"
    },
    {
      "categori_id": 3,
      "name": "food"
    },
    {
      "categori_id": 4,
      "name": "sea"
    }
  ],
  "products": [
    {
      "id": 1,
      "name": "Lorem",
      "price": "60.000",
      "available": true,
      "best_seller": true,
      "categories": [
        1,
        4
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 2,
      "name": "ipsum",
      "price": "20.000",
      "available": false,
      "best_seller": false,
      "categories": [
        4
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 3,
      "name": "dolor",
      "price": "10.000",
      "available": true,
      "best_seller": true,
      "categories": [
        4
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 4,
      "name": "sit",
      "price": "35.000",
      "available": false,
      "best_seller": false,
      "categories": [
        1,
        2
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 5,
      "name": "amet",
      "price": "12.000",
      "available": true,
      "best_seller": true,
      "categories": [
        1,
        4
      ],
      "img": "http://lorempixel.com/200/100/food/",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 6,
      "name": "consectetur",
      "price": "120.000",
      "available": true,
      "best_seller": false,
      "categories": [
        1,
        4
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 7,
      "name": "adipiscing",
      "price": "50.000",
      "available": false,
      "best_seller": false,
      "categories": [
        1,
        3
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 8,
      "name": "elit",
      "price": "2000",
      "available": true,
      "best_seller": false,
      "categories": [
        1,
        3
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 9,
      "name": "Maecenas",
      "price": "150.000",
      "available": true,
      "best_seller": true,
      "categories": [
        2,
        4
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    },
    {
      "id": 10,
      "name": "eu",
      "price": "200.000",
      "available": false,
      "best_seller": true,
      "categories": [
        2,
        3
      ],
      "img": "",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu."
    }
  ]
}

Кодекс JavaScript:

$(document).ready(function(){

  $.ajax({
    url: "category.json", // path to file
    dataType: 'json', // type of file (text, json, xml, etc)
     success: function(data) {
     /$.each(data, function(i, item) {
          console.log(item);

      });/

     jQuery.each( data, function( i, val ) {
  $( "body" ).append( document.createTextNode( " - " + val ) );
});
    },
    error: function() {
      alert("error");
    }
  });     

});

Пожалуйста мне хотелось бы знать, что Вы происходите.

1
задан 19.10.2016, 16:03
5 ответов

Хорошие, deberГ-схвати "входить" в JSON. А именно, вместо console.log(item) помести console.log(item.categories);

, Чтобы продолжать пробегать array, deberГ-схвати делать for, будучи i=0 и до item.categories.length.

console.log(item.categories[i]);

1
ответ дан 24.11.2019, 13:03

Если я плохо не вижу код, я думаю, что ты был бы должен вновь пробегать то, что приходит к тебе внутри первого for each.

$.ajax({
   url: "category.json", // path to file
   dataType: 'json', // type of file (text, json, xml, etc)
    success: function(data) {
    $.each(data, function(i, item) {
         console.log(item);

        jQuery.each( item, function( i, val ) {
             $( "body" ).append( document.createTextNode( " - " + val ) );
        }); 

     });


   },
   error: function() {
     alert("error");
   }
 });     

});
1
ответ дан 24.11.2019, 13:03

Чтобы печатать признак в специфическом средстве, ты должен заявлять, каков этот признак в функции each (), так как они относятся друг к другу о договоренностях, и потом пробегать эту договоренность внутри другого each () следующей формы:

$.each(data.products, function() {
   $.each(this, function(key, value) {
      console.log(key + " - " + value)
   })
})

Я надеюсь, что он подает тебя!

1
ответ дан 24.11.2019, 13:03

Подтверди, что твой сервер посылает данные в формате application/json вместо text/plain. Твоя функция jquery жди данные в формате json, поместив:

dataType: 'json'

С другой стороны, это [object][object] это форма, в которой последовательно преобразовываются данные, которых ты получаешь. Если ты хочешь увидеть их в форме дерева, пошли их в консоль браузера с console.log(datos).

0
ответ дан 24.11.2019, 13:03

Я не понимаю очень хорошо того, в чем он нуждается, но у него должно быть в ясном, что Ваш JSON состоит из 2 договоренностей, следовательно 1 each не достаточно, чтобы получать все данные, которых Вы хотите.

$.each(data.categories, function(index,value){
    console.log(value.categori_id + " " + value.name);
});
$.each(data.products, function(index,value){
    console.log(value.id + " " + value.name + " " + value.price);
});
0
ответ дан 24.11.2019, 13:03