Создать Массив Любимых Фруктов Объект - PullRequest
0 голосов
/ 24 января 2020

У меня есть следующая оценка, которая заключается в создании массива объектов из избранных продуктов в данных. json файл.

Массив объектов должен иметь следующие поля:

  • Имя
  • Тип
  • Цена

После записи данных JSON этот файл следует импортировать в циклический объект. js.

Я пробовал вышеуказанный запрос с данными . json

{
 "food":[
    {
      "Name":"Apple",
      "Type":"fruit",
      "Price":100
    },
    {
      "Name":"pizza",
      "Type":"italian",
      "Price":370
    },
    {
      "Name":"Burger",
      "Type":"Mac&Cheese",
      "Price":310
    },
    {
      "Name":"salad",
      "Type":"Veg",
      "Price":50
    }
  ]
}

И с loopobject. js

var json = require('./data.json');

json.forEach(function(object) { console.log(object.Name); });

и схема:

const schema = Joi.array().min(3).has({
    Name: Joi.string().required(),
    Type: Joi.string().required(),
    Price: Joi.number().required(),
});

При отправке вышеуказанных данных. json и loopobject. js Я получаю:

ValidationError: "value" must be an array

Я не уверен, как отредактировать данные . json, чтобы сделать их массивом объектов, поскольку, как я думаю, данные. json имеет массив объектов. Может кто-нибудь помочь решить проблему с данными . json и loopobject. js?

Обратите внимание, что я не могу редактировать схему JSON

Ответы [ 3 ]

3 голосов
/ 24 января 2020

json - это не array, вы хотите использовать json.food.

var json = require('./data.json');

json.food.forEach(function(object) { console.log(object.Name); });
1 голос
/ 24 января 2020

Ваш json является объектом и имеет "food" именованный массив. Если вы хотите иметь только массив, пожалуйста, измените ваш JSON следующим образом:

[
    {
      "Name":"Apple",
      "Type”:”fruit”,
      "Price":100
    },
    {
      "Name”:”pizza”,
      "Type”:”italian”,
      "Price”:370
    },
    {
      "Name”:”Burger,
      "Type”:”Mac&Cheese”,
      "Price”:310
    },
    {
      "Name”:”salad”,
      "Type”:”Veg”,
      "Price”:50
    }
  ]
0 голосов
/ 24 января 2020

уверен, что это не массив, это объект с парой ключ и массив {food: [array]}, сначала вам нужно извлечь эту часть массива, а затем вы можете выполнить операции с массивом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...