Удалить все ключи из объекта JSON - PullRequest
0 голосов
/ 30 января 2019

Изначально я работал с CSV, где каждая строка содержала данные, например,

------------------------------------------------------
123            |   cat               |   dog         |   
------------------------------------------------------
456            |   cat               |   rabbit      |   
------------------------------------------------------
789            |   snake             |   dog         |   
------------------------------------------------------

Теперь я получаю больше данных с другой структурой, поэтому я больше не могу использовать CSV.Вместо этого я использую файл JSON.Файл JSON выглядит примерно так:

[
  [
    {
      "ID": 123,
      "animal_one": "cat",
      "animal_two": "dog"
    },
    {
      "ID": 456,
      "animal_one": "cat",
      "animal_two": "rabbit"
    },
    {
      "ID": 789,
      "animal_one": "snake",
      "animal_two": "dog"
    }
  ],
  [
    2222
  ],
  [
    12345
  ],
  [
    "2012-01-02"
  ],
  [
    "2012-12-20"
  ]
]

Так что вы можете увидеть дополнительные данные.Для этой части приложения я хочу работать только с первой частью JSON, частью, содержащей животных.Имеющаяся у меня функция в основном работает только со значениями, поэтому мне нужно сделать этот JSON похожим на оригинальный CSV-файл, в котором у меня есть только значения без ключей.

Итак, я загружаю файл JSON, который затемсодержится в переменной data

Затем я пытаюсь что-то вроде этого

var key = "CUST_ID";
delete data[0][key];
console.log(JSON.stringify(data[0]))

Хотя это даже не работает, я думаю, что в любом случае это неправильный подход.Я не хочу определять ключи, которые я хочу удалить, я просто хочу, чтобы он удалил все ключи и сохранил значения.

Как бы я поступил так?Я использую data[0], чтобы получить первый раздел JSON, часть, которая содержит животных.Не уверен, что это правильно?

Спасибо

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Вы можете просто сделать это, если вам все равно, какие ключи вы получаете:

var collection = "";
data[0].forEach(function(row) {
    var line = [];
    Object.keys(row).forEach(function(key) {
        line.push(row[key])
    });
    collection = collection + line.join(',') + '\n';
})

Вы получите строку csv из коллекции

0 голосов
/ 30 января 2019
data[0].forEach(function(row,index) {
   data[0][index] = Object.values(data[0][index]);
});
0 голосов
/ 30 января 2019

Я не хочу определять ключи, которые я хочу удалить

Вам все равно нужно будет определить , с каких ключей вы хотите получить значения.Можно просто взять все значения из объекта в произвольном порядке, но это не устойчиво к изменениям формата данных.Используйте что-то вроде

const table = data[0].map(value => [value.ID, value.animal_one, value.animal_two]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...