javascript - 如何将 JSON 数据映射到表格/HTML?
问题描述
我得到一个json数据如下:
{
"encoding_version" : 1,
"root" : {
"_type" : lookup_config_data",
"Class" : ".key.LookData",
"Tbl" : {
"_type" : "lookup_table",
"Class" : ".key.LookupTable",
"Lhs" : { "_type" : "array<variant>", "_data" : [
".key.test1",
".key.test2",
".key.test3",
".key.test4",
".key.test5"
] },
"Groups" : { "_type" : "array<array<key>>", "_data" : [
{ "_type" : "array<key>", "_data" : [
".key.data1",
".key.data12"
] },
{ "_type" : "array<key>", "_data" : [
".key.data2"
] },
{ "_type" : "array<key>", "_data" : [
".key.data3"
] },
{ "_type" : "array<key>", "_data" : [
".key.data4"
] },
{ "_type" : "array<key>", "_data" : [
".key.data5"
] }
] }
}
}
}
有没有办法映射如下:
测试1->数据1,数据12
测试2->数据2
测试3->数据3
测试4->数据4
测试5->数据5
请帮忙。
谢谢!
解决方案
看起来上面的数据有一个预定义的模式。因此需要注意模式定义的每个语法。但作为起点,您可以使用以下代码。
var obj = {
"encoding_version" : 1,
"root" : {
"_type" : "lookup_config_data",
"Class" : ".key.LookData",
"Tbl" : {
"_type" : "lookup_table",
"Class" : ".key.LookupTable",
"Lhs" : { "_type" : "array<variant>", "_data" : [
".key.test1",
".key.test2",
".key.test3",
".key.test4",
".key.test5"
] },
"Groups" : { "_type" : "array<array<key>>", "_data" : [
{ "_type" : "array<key>", "_data" : [
".key.data1",
".key.data12"
] },
{ "_type" : "array<key>", "_data" : [
".key.data2"
] },
{ "_type" : "array<key>", "_data" : [
".key.data3"
] },
{ "_type" : "array<key>", "_data" : [
".key.data4"
] },
{ "_type" : "array<key>", "_data" : [
".key.data5"
] }
] }
}
}
};
var newObj = {};
var keys = obj.root.Tbl.Lhs._data;
var values = obj.root.Tbl.Groups._data;
if (keys.length == values.length){
keys.forEach((e,i)=>{
newObj[extractData(e)] = values[i]._data.map(v=>extractData(v));
})
}
function extractData(raw){
return raw.split('.')[2];
}
console.log(newObj);
这newObj
将是Lhs
键到Groups
值的映射。
推荐阅读
- arrays - 数组中两个元素的最大和减去它们之间的距离
- ios - 使用自定义单元格从搜索中更新 tableView
- r - 根据列名、ID 号和其他数据框中的键值替换数据框中的值
- c - 如何使用 cJSON 在名称/值对中查找名称
- javascript - 如何在css和js中创建一个带有向鼠标指针旋转的字符串的球体?
- xpages - documentId 解析代码没有被执行 XPages
- python-3.x - 在大于 9 的整数之后 提供的绑定数量不正确。当前语句使用 1,并且提供了 2
- javascript - Javascript/jquery - 在 dom 中上升 2 级(让我们将此对象称为“A”),然后将 css 应用于“A”的其中一个孩子
- java - 你能说出这个工作背后的概念吗?
- r - R中多元线性回归模型中预测变量影响的估计量方差估计