Имя из ответа JSON становится неопределенным, когда console.log - PullRequest
0 голосов
/ 23 июня 2018

у меня ниже JSON получено от API.

    {
   "categories":[
      {
         "id":"20",
         "parent_id":"3",
         "name":"Khau Galli",
         "description":null,
         "sort_order":"58",
         "is_visible":"1",
         "created_at":"2018-05-20 07:47:36",
         "updated_at":"2018-06-12 13:50:38",
         "icon":null
      },
      {
         "id":"22",
         "parent_id":"3",
         "name":"Apparel Wear",
         "description":null,
         "sort_order":"59",
         "is_visible":"1",
         "created_at":"2018-05-20 07:50:34",
         "updated_at":"2018-06-12 13:50:38",
         "icon":null
      },
      {
         "id":"204",
         "parent_id":"3",
         "name":"Footwear",
         "description":null,
         "sort_order":"227",
         "is_visible":"1",
         "created_at":"2018-05-24 10:26:27",
         "updated_at":"2018-06-12 13:50:38",
         "icon":null
      },
      {
         "id":"205",
         "parent_id":"3",
         "name":"Fruits & Vegetable Vendor",
         "description":null,
         "sort_order":"228",
         "is_visible":"1",
         "created_at":"2018-05-24 10:28:26",
         "updated_at":"2018-06-12 13:50:38",
         "icon":null
      },
      {
         "id":"327",
         "parent_id":"3",
         "name":"Paan Shop",
         "description":null,
         "sort_order":"340",
         "is_visible":"1",
         "created_at":"2018-06-04 10:01:02",
         "updated_at":"2018-06-12 13:50:38",
         "icon":null
      }
   ]
}

Я хочу взять имя из ответа для панели ионного поиска.Но когда я console.log name это дает неопределенный.Я написал ниже код

   this.authService.postData("id=" + id, "category").then((result) => {

            this.resposeData = result;
            this.categories = this.resposeData.categories;
            this.categoriesName = this.categories.name;
            console.log(this.categoriesNamem);


                //this.listings = this.resposeData.data.list.data;

                //console.log(this.categories);
                // localStorage.setItem('userData', JSON.stringify(this.resposeData) )
                // this.navCtrl.push(Login);
                this.loading.dismiss();

        })

Даже я пытался JSON.stringify на this.categories.Но все еще дает неопределенное.Пожалуйста помоги.Я хочу получить все это имя в структуре ниже для ионного поиска.

initializeItems() {
    this.items = [
      'Amsterdam',
      'Bogota',
      ...
    ];
  }

Где this.item происходит от name

Ответы [ 3 ]

0 голосов
/ 23 июня 2018

категорий это массив объектов, поэтому я думаю, что вы должны попробовать что-то вроде этого

 this.categoriesName = this.categories[0].name;
0 голосов
/ 23 июня 2018

Вам просто нужно перебрать категории и сохранить каждое поле имени в массиве.

this.authService.postData("id=" + id, "category").then((result) => {

  this.resposeData = result;
  this.categories = this.resposeData.categories;
  // Iterate through categories and store each name into this.names
  this.names = this.categories.map(cat => cat.name);

  //this.listings = this.resposeData.data.list.data;

  //console.log(this.categories);
  // localStorage.setItem('userData', JSON.stringify(this.resposeData) )
  // this.navCtrl.push(Login);
  this.loading.dismiss();
});
0 голосов
/ 23 июня 2018

Категории это массив.Попробуйте this.categories [0] .name.Это даст вам имя первой категории

...