Начну с того, что я знаю, как использовать библиотеку javascript JSON, мой вопрос не так прост, так что, пожалуйста, прочитайте деталь не просто название, так как я не смог выразить это хорошо в названии ...Как создать динамический документ json из массива строк в javascript
То, что я пытаюсь достичь, - это преобразование csv в документ JSON, но с использованием динамической схемы для сопоставления переменных схем csv's определенная схема документа
У меня есть документ JSON, который имеет строковые ключи i, e "Field1", "Field2" и т. д. Соответствующее значение представляет собой строку с разделителями по каналам, которая содержит тип документа перед первый разделитель и ан каждая строка в разделителях выстраивается «Path» динамического JSon документа Я хочу создать ...
Так CSV приходит и преобразуется в формат JSON ....
«Field1» в загруженный CSV содержит значение «Картофель»
Мы извлечение трубы строки с разделителями для «Field1», который имеет значение «1 | Овощи | RootVeg»
поэтому динамически мне нужно создать документ JSon таким образом, чтобы для этого поля соответствующий раздел документа будет выглядеть так:
{ "Vegetables" : { "RootVeg" : "Potatoes"} }
Надеется, что имеет смысл .... Ниже различный Foreach петля Я пытаюсь построить это с ....
var vesselprimary = [];
var vesselsecondary = [];
angular.forEach(value, function (value2, key2) {
var pipedValue = data[0][key2];
console.log("pipedvalue", pipedValue);
console.log("value2", value2);
var arrayValues = pipedValue.split("|");
if (arrayValues[0] === 1) {
//Create the VesselPrimary JSON object to put into the body of the post
if (arrayValues.count > 2) {
vesselprimary[arrayValues[1]] = {};
vesselprimary[arrayValues[1]][arrayValues[2]] = value2;
} else {
vesselprimary[arrayValues[1]] = value2;
}
} else {
//Create the VesselSecondary JSON object to put into the body of the post
if (arrayValues.count > 2) {
vesselsecondary[arrayValues[1]] = {};
vesselsecondary[arrayValues[1]][arrayValues[2]] = value2;
} else {
vesselsecondary[arrayValues[1]] = value2;
}
}
});
//console.log(vesselprimary);
this.push(vesselprimary);
}, jsonArr);
Но мой выход менее чем впечатляет ....
"[[],[],[],[],[],[],[],[],[]]"
Опасность здесь в том, что так много ошибок при чтении CSV. Ваш последний код, скорее всего, будет работать для большинства сценариев, но как насчет CSV с этим ... «val1», «val2, val2b», «val3» - если возможно, используйте JavaScript CSV-ридер вместо этого вручную - если вы используете NodeJS ... https://www.npmjs.com/package/csv ... если нет, тогда ищите JS lib там, который работает для вас - возможно, это не тот ответ, который вы хотите, но вы должны бросить вызов своему подход – danday74
Привет @danday Спасибо за ваш комментарий, и это абсолютно действительный момент, однако эта часть на самом деле не касается импорта csv, что я, вероятно, сделаю с какой-то библиотекой, это чтение конфигурации (чтение схемы) json file что говорит системе, как перевести вывод библиотеки csv в мой формат JDON DocumentDB ..., это имеет смысл? – dreadeddev