Удалить родительский элемент из ответа JSON

1

У меня есть маршрут, используемый для вызовов AJAX. Он получает элементы из БД и возвращает массив JSON.

Я использую:

return reply({
   myArray
}).code(200);

Все работает, но мой вывод в браузере:

{  
   "myArray":[  
    {  
       "_id":"1",
       "name":"Asd1"
      },
    {  
      "_id":"2",
      "name":"Asd2"
    }
}

Но мне нужно:

{  
  [  
    {  
       "_id":"1",
       "name":"Asd1"
      },
    {  
      "_id":"2",
      "name":"Asd2"
    }
  ]
}

В основном, мне нужно избавиться от родительского элемента "myArray" и оставить там только массив. Это похоже на простую задачу, но я нигде не могу найти документацию или образцы.

Спасибо, Марко

  • 1
    JSON, который вам нужен, кажется неправильным.
  • 0
    Вы не можете иметь такой массив, чтобы быть действительным JSON ... jsonlint.com
Показать ещё 1 комментарий
Теги:
hapijs

1 ответ

2
Лучший ответ

Это:

{  
  [  
    {  
       "_id":"1",
       "name":"Asd1"
    },
    {  
      "_id":"2",
      "name":"Asd2"
    }
  ]
}

является недопустимым обозначением JSON. В фигурных скобках вы должны иметь пары ключ-значение, где ключи являются строками и значениями являются действительными значениями JSON (строки, числа, булевы, null, массивы или объекты).

Возможно, то, что вы ожидаете, это просто массив:

[  
  {  
     "_id":"1",
     "name":"Asd1"
  },
  {  
    "_id":"2",
    "name":"Asd2"
  }
]

который действителен JSON. В этом случае вы можете просто отправить его в свою функцию reply:

return reply(myArray).code(200);

Для получения дополнительной информации о нотации JSON см. Статью о MDN и играйте с JSON.stringify чтобы развить лучшую интуицию, когда JSON, который вы видите, действителен или нет.

  • 0
    Не стоит помещать массив в json напрямую. Без разницы...
  • 0
    Я не знаю, почему я не попробовал это в первую очередь. Спасибо за вашу помощь, это работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню