【发布时间】:2019-01-05 17:36:36
【问题描述】:
我有一个 JSON 对象数组。示例数组如下:
[
{
"evt.category": "file",
"evt.cpu": 0,
"evt.num": 10078507,
"evt.res": "SUCCESS",
"evt.time": 1532841047277584400,
"evt.type": "read",
"fd.filename": "libnss_files.so.2",
"fd.name": "/lib/x86_64-linux-gnu/libnss_files.so.2",
"fd.num": 13,
"fd.type": "file",
"fd.uid": "1996913",
"proc.loginshellid": 19968,
"proc.name": "last",
"proc.pid": 19969,
"thread.ismain": true,
"thread.tid": 19969
},
{
"evt.buffer": "1000",
"evt.category": "file",
"evt.cpu": 0,
"evt.num": 10078564,
"evt.res": "SUCCESS",
"evt.time": 1532841047277731300,
"evt.type": "read",
"fd.filename": "loginuid",
"fd.name": "/proc/16009/loginuid",
"fd.num": 13,
"fd.type": "file",
"fd.uid": "1996913",
"proc.loginshellid": 19968,
"proc.name": "last",
"proc.pid": 19969,
"thread.ismain": true,
"thread.tid": 19969
},
{
"evt.buffer": "",
"evt.category": "file",
"evt.cpu": 0,
"evt.num": 10078566,
"evt.res": "SUCCESS",
"evt.time": 1532841047277733400,
"evt.type": "read",
"fd.filename": "loginuid",
"fd.name": "/proc/16009/loginuid",
"fd.num": 13,
"fd.type": "file",
"fd.uid": "1996913",
"proc.loginshellid": 19968,
"proc.name": "last",
"proc.pid": 19969,
"thread.ismain": true,
"thread.tid": 19969
}
]
我想重新构造这个数组,以便将每个对象转换为另一个数组,并且每个数组都应该包含基于这些键的 JSON 对象,例如 evt 、 proc thread 等的 JSON 对象。
我尝试了一些在线网站来做到这一点,但都不起作用。
请帮忙。
编辑: 我想要的输出如下:
[
{
"evt": {
"category": "file",
"cpu": 0,
"num": 10078507,
"res": "SUCCESS",
"time": 1532841047277584400,
"type": "read"
},
"fd": {
"filename": "libnss_files.so.2",
"name": "/lib/x86_64-linux-gnu/libnss_files.so.2",
"num": 13,
"type": "file",
"uid": "1996913"
},
"proc": {
"loginshellid": 19968,
"name": "last",
"pid": 19969
},
"thread": {
"ismain": true,
"tid": 19969
}
},
{
"evt": {
"buffer": "1000",
"category": "file",
"cpu": 0,
"num": 10078564,
"res": "SUCCESS",
"time": 1532841047277731300,
"type": "read"
},
"fd": {
"filename": "loginuid",
"name": "/proc/16009/loginuid",
"num": 13,
"type": "file",
"uid": "1996913"
},
"proc": {
"loginshellid": 19968,
"name": "last",
"pid": 19969
},
"thread" : {
"ismain": true,
"tid": 19969
}
}
]
【问题讨论】:
-
能否为您的期望输出添加示例?
-
@DavidWinder 我现在已将其添加到问题中。希望现在我的问题更清楚了。谢谢。
-
@cstayyab,你想用哪种编程语言来做这个转换?
-
@BráulioFigueiredo ,我没有提到具体的编程语言,因为在我看来可能有一种通用的方法(例如循环)。但具体来说,最好是在python 3
-
@cstayyab 不幸的是我不懂 python,但我用 Javascript 解决了你的问题。如果有帮助,请查看我的回答