【发布时间】:2014-10-31 18:51:43
【问题描述】:
在给定所有文件和路径的数组的情况下,我正在尝试创建机器目录结构的 JSON。
数组看起来像这样:
string[] dirArray = {
"./proc/15/task/15/exe",
"./proc/15/task/15/mounts/mounts.xml",
"./proc/15/task/15/mountinfo/mountinfo.xml",
"./proc/15/task/15/clear_refs/clear_ref.xml",
"./proc/14/loginuid/loginuid.xml",
"./proc/14/sessionid/sessionid.xml",
"./proc/14/coredump_filter/coredump_filter.xml",
"./proc/14/io/io.xml"
}
我的目标 JSON 是这样的:
{
".":
{
"file":
{
"name":"fileInRoot.xml"
},
"proc":
{
"file":
{
"name":"fileInProc.xml"
},
"15":
{
"file":
{
"name":"fileIn15.xml"
},
"task":
{
"file":
{
"name":"fileInTask.xml"
},
"15":
{
"file":
{
"name":"fileInTask.xml"
},
"mounts":
{
"file":
{
"name":"fileInMounts.xml"
}
},
"mountsInfo":
{
"file":
{
"name":"fileInMountsInfo.xml"
}
},
"clear_refs":
{
"file":
{
"name":"fileInClear_Refs.xml"
}
}
}
}
},
"14":
{
"file":
{
"name":"fileIn14.xml"
},
"task":
{
"file":
{
"name":"fileInTask.xml"
},
"loginUid":
{
"file":
{
"name":"fileInloginUid.xml"
}
},
"sessionid":
{
"file":
{
"name":"fileInsessionid.xml"
}
},
"coreDump_filter":
{
"file":
{
"name":"fileIncoreDump_filter.xml"
}
},
"io":
{
"file":
{
"name":"fileInIo.xml"
}
}
}
}
}
}
}
我想创建一个 JSON 文件,允许 JSON 的消费者组件在此目录结构中导航。我一直在尝试使用 Directory、File 和 Path 类,但也许最好的方法是使用 java.serializor(?) 类在我循环遍历数组、解析其目录和我去的文件?
【问题讨论】:
-
您能否编辑您的问题以显示您想要创建的 JSON 输出示例,给定上面显示的字符串数组?
-
当然,见上文,这将是一个很好的输出。
-
文件名从何而来?它们只是从目录名称(每个目录一个文件)中假设的吗?
-
它们是示例文件名。我把它们放进去,因为我注意到该示例没有提到任何文件。示例已更新
-
OK,所以文件名将成为
dirArray的一部分。我可以假设每个目录总是只有一个文件吗?如果没有,那么 JSON 将需要更改(您需要一个数组来存储每个目录级别的 JSON 中的文件)。另外,我可以假设没有名为“文件”的目录吗?如果任何目录都可以称为“文件”,那么您也需要更改 JSON 以解决此问题,因为 JSON 中的同一级别不能有两个具有相同名称的键。