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

时间:2019-07-03 20:09:16

标签: javascript mysql json

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

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

1 个答案:

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