【发布时间】:2012-04-23 21:25:15
【问题描述】:
我有一个从 csv 转换而来的 JSON 文件,它太大而无法手动编辑。我认为它的语法是一个大数组。数据来自一组路由器,我的目标是构建路由器对象。当前 CSV 到 JSON 文件的方式是按每一行组织的,我想挑选出每个路由器并拥有一个带有路由器名称的对象,即与该路由器关联的所有带宽测量值。
你会如何处理这个问题?当我遍历 JSON 文件并且路由器更改时,我试图处理所有这些,我启动路由器对象的新实例。我不再是一个新手,只是一个学习缓慢的人。那么下一步是使用 js 创建一个路由器类,并用我从巨大的 JSON 数组中提取的内容填充该类,还是可以/应该不使用手写类并动态创建所有对象? (我可以即时创建对象吗?
当前的 JSON(它持续到页面,每个路由器在 csv 中有几百个条目:
[
{
"Router": "RouterID1",
"TimeStamp": "2012/01/01 06:00:00",
"transferBytes": "23235",
"ReceivedBytes": "29903"
},
{
"Router": "RouterID1",
"TimeStamp": "2012/01/01 06:05:00",
"transferBytes": "21235",
"ReceivedBytes": "22103"
}
{
"Router": "RouterID2",
"TimeStamp": "2012/01/01 06:00:00",
"transferBytes": "23235",
"ReceivedBytes": "29903"
},
{
"Router": "RouterID2",
"TimeStamp": "2012/01/01 06:05:00",
"transferBytes": "21235",
"ReceivedBytes": "22103"
}
]
@amnotiam:路由器类型保证彼此相邻
这可能无效,但这是我认为我想要的结构:
[
{
"Router": "RouterID1"
"TimeStamp": array of timestamps
"transferBytes": array of bytes transferred for each timestamp
"ReceivedBytes": array of bytes received for each timestamp
},
{
"Router": "RouterID2",
"TimeStamp": array of timestamps
"transferBytes": array of bytes transferred for each timestamp
"ReceivedBytes": array of bytes received for each timestamp
}
]
@Bergi 我想为每个路由器创建一个对象,其中包含对象中的历史数据。知道我每次进入都有一个对象。 (我认为)
@Rick 好电话,我会并且可能稍后会问这个问题:)
【问题讨论】:
-
路由器的组织是否保证相同的路由器类型彼此相邻?您能否举例说明生成的数据结构应该是什么样子?
-
您的(解析的 json)数组中已经有很多路由器对象。你想把它们变成什么?
-
您是否会在每次页面加载或刷新时解析/制作对象?创建所有这些并缓存这些可能会更好,因此您不必在路由器更改时解析数据 x 次。
-
问题底部的回复
-
我更新了我的答案以显示相同的想法,但没有 php--抱歉 =)
标签: javascript json object mapping