我有一个带有多个对象的JSON对象,必须将其转换为单个对象,以便将其插入到mysql表中。
我正在JavaScript上执行此操作,但是我不知道如何将其转换为“行”,因此可以将其发送到mysql的插入内容中
该ID必须包含所有带有每个ConceptID和ConceptValue的anotherID
ConceptID和ConceptValue必须位于每个anotherID上,因此结果将类似于我在示例中显示的结果
示例:
JSON
{
ID: "1"
AnotherID: "003,004,006,007,008,009,010"
ConceptID: "A,B,C"
ConceptValue: "23,45,63"
}
我想将其插入到mysql表中,如下所示:
ID | AnotherID | ConceptID | ConceptValue
===============================================
1 | 003 | A | 23
1 | 003 | B | 45
1 | 003 | C | 63
1 | 004 | A | 23
1 | 004 | B | 45
1 | 004 | C | 63
我已经尝试过在mysql的存储过程中执行此操作,但是无法使其正常工作。
我在开发方面还是新手,所以对您的帮助将不胜感激!
我尝试过使用ForEach,这样我就可以将JSON分成几部分
var $IDs;
var count = 0;
JSON_Object.forEach(function (element) {
count++;
$IDs.push(element[count].ID.value);
});
但是,然后,我不知道如何像我想要的结果那样对它们进行排序并生成每一行。
答案 0 :(得分:0)
我认为您有一个类似
的对象let obj = {
ID: "1",
AnotherID: "003,004,006,007,008,009,010",
ConceptID: "A,B,C",
ConceptValue: "23,45,63"
}
所以让我们创建两个变量:
let conceptId = obj.ConceptID.split(','); // Convert to array
let conceptValue = obj.ConceptValue.split(',');
现在,这将创建一个包含包含ConceptId的AnotherId的数组对象
obj.AnotherID.split(',').reduce((arr, id) => {
arr.push(...conceptId.map((v, i) => ({
AnotherId: id,
ConceptID: v,
ConceptVaue: conceptValue[i]
})))
return arr;
}, [])