繁体   English   中英

如何将具有多个对象的JSON对象转换为一组对象

[英]How to convert JSON object with multiple objects into a single set of objects

我有一个带有多个对象的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);
});

但是,然后我不知道如何像我想要的结果那样对它们进行排序并生成每一行。

我想你有一个像

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;
}, [])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM