{
"purchaseorder": {
"Meta": [{
"InterchangeControlNumber": ["000004010"],
"GroupControlNumber": ["833"],
"DocumentControlNumber": ["5952"],
"InterchangeSenderID": ["009483355"],
"InterchangeReceiverID": ["076627454"],
"GroupSenderID": ["009483355"],
"GroupReceiverID": ["076627454"]
}],
"header": [{
"address": [{
"home": [{
"hno": ["134/123"],
"contact": ["898944343"],
"pin": ["272272"],
"district": ["telangana"]
}],
"office": [{
"hno": ["456/789"],
"contact": ["440838272"],
"pin": ["55833"],
"district": ["delhi"]
}]
}]
}]
}
}
我有如上所述的JSON数据。
我希望将它作为表名存储在数据库中作为元,家庭和办公室,其中各个键作为列,值作为单元格数据。
我如何在node.js或JavaScript中使用JSON中的数据?
JSON数据可以是任何东西。我可以传递要创建的所需表的名称,它应该是自动化的。
答案 0 :(得分:1)
我担心我对SQL Server不太了解,但希望这会让你在Javascript方面沿着正确的方向前进。
将JSON转换为Javascript对象
您可以将JSON数据转换为键值可访问对象,然后访问meta
,home
和office
,如下所示:
var data = JSON.parse(jsonData);
var meta = data.purchaseorder.Meta[0];
var home = data.purchaseorder.header[0].address[0].home[0];
var office = data.purchaseorder.header[0].address[0].office[0];
然后提取您可以执行的特定值,例如:
var homeContact = home.contact; // Will return "898944343".
检索列名
正如您所说,如果数据可以更改,您可以通过以下方式获取列名:
var metaColumns = Object.keys(meta);
var homeColumns = Object.keys(home);
var officeColumns = Object.keys(office);
注意:Javascript对象不一定保留属性排序,因此这些列的顺序可能与它们在数据中显示的顺序不同。
创建表格和插入数据
为此,您可以将相应的列名和值数组放在一起:
var allColumns = metaColumns + homeColumns + officeColumns;
var allValues = [];
for (let col of metaColumns) {
allValues.push(meta[col]);
}
for (let col of homeColumns) {
allValues.push(home[col]);
}
for (let col of officeColumns) {
allValues.push(office[col]);
}
从这里开始,您可以使用适合{1}}的SQL Server CREATE TABLE
库来构建INSERT
和node.js
SQL语句,列名称和值作为参数。 }}
请注意,如果此数据来自不受信任的来源,则应确保正确清理以防止SQL注入。