用Javascript从两个平面结构数组中格式化JSON
Format JSON from two flat structured array in Javascript
我需要用两个链接在一起的扁平结构数组制作一个嵌套的JSON,我可以获得第一级,但不能将其嵌套在javascript中。
以下是问题陈述。
我有两个阵列:
data = ["HSP - FS", "FS-M", "Lo Co", "GO A", "CQM","whatever"];
type = ["Epic","Sub - Epic","Sub - Epic","Epic","Sub - Epic","Story"];
CCD_ 1数组和CCD_ 2数组链接在一起,并且具有类似的相同索引上的类型和描述
type[0]
是data[0]
,所以它将是"Epic:HSP-FS",但这并没有到此结束,这个Epic也有子元素是Sub-Epics,它们的描述被放在同一个数组元素下,所以type[1]
是"Sub-Epic",它的数据在data[1]
中是"FS-M",以此类推,直到在类型数组中找到下一个"Epic"。
所以JSON就像
{0:{
Epic: "HSP - FS",
Sub-Epic:"FS-M",
Sub-Epic:"Lo Co"
},
1:{
Epic: "GO A",
Sub-Epic:"CQM",
Story:"whatever"
}}
数组和JSON的结构是固定的,即使数组也可以有任何数量的史诗、子史诗或故事,但顺序将保持不变,因为所有史诗的子代都会在那里,直到下一次发生史诗。
问题是我无法编写循环以获得输出。。到目前为止,我已经尝试过迭代和连接这两个阵列
提前感谢您的帮助。
JSON对象中不能有重复的命名属性,但可以使用数组:
var array = [];
for(var i=0; i < data.length; ++i)
{
var t = type[i];
var d = data[i];
if (t == "Epic")
{
array.push({ "Epic": d});
}
else
{
if(typeof(array[array.length-1][t]) == "undefined")
{
array[array.length-1][t] = [];
}
array[array.length-1][t].push(d)
}
}
这是生成的JSON:
[{
"Epic": "HSP - FS",
"Sub - Epic": ["FS-M","Lo Co"]
},
{
"Epic": "GO A",
"Sub - Epic": ["CQM"],
"Story": ["whatever"]
}]
相关文章:
- 更改JSON对象的结构
- 角度控制器结构
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- D3:使用 nest 函数将带有父键的平面数据转换为层次结构
- 通过键将平面对象转换为嵌套结构
- 用Javascript从两个平面结构数组中格式化JSON
- 如何从平面JavaScript数组创建分层HTML结构
- 从平面结构中的 JSON 中获取每个名称值
- Javascript:将平面 json 结构解析和排序为嵌套数组
- 以下是客户端javascript的Models类的一些示例,它们具有层次结构文档而不是平面行
- 如何将平面JavaScript对象数组转换为嵌套的分层JSON结构
- 将平面JSON对象转换为树形数据结构
- 将平面结构转换为对象
- 具有有序刻度yscale的水平图表,但不是纯平面名称>树形结构
- 将平面结构转换为分层结构
- DOM操作和Javascript数据结构:平面的还是结构化的
- 在JavaScript中从平面数组生成树结构(不使用对象引用)
- 如何将平面javascript数组转换为嵌套的图结构
- 将平面数组结构为树
- 从具有父字段的平面列表构建层次结构树