使用GSON将java.io.File解析为JSON
我正在通过网络发送一个JSON格式的文件,并希望从中检索信息。该文件是使用使用GSON将java.io.File解析为JSON,java,json,Java,Json,我正在通过网络发送一个JSON格式的文件,并希望从中检索信息。该文件是使用file.createTempFile方法创建的。代码如下: File patchFile = File.createTempFile("indexer", ".pf", null); try(FileOutputStream fos = new FileOutputStream(patchFile)) { byte[] patchFileBytes = new byte[payloadLength]; b
file.createTempFile
方法创建的。代码如下:
File patchFile = File.createTempFile("indexer", ".pf", null);
try(FileOutputStream fos = new FileOutputStream(patchFile)) {
byte[] patchFileBytes = new byte[payloadLength];
buffer.readBytes(patchFileBytes);
fos.write(patchFileBytes);
}
我试图找到将补丁文件
读取为JSON并从中获取值的最佳方法。生成的文件结构如下所示(在客户端上):
目前我已经把文件发送过来并读取到内存中,正如你在上面看到的,但是我不确定从现在开始从哪里读取数据,有人能帮我吗
我正在使用GSON 您没有提到您的文件有多大。如果它不是太大,那么您可以使用ApacheCommonsIO并将整个文件内容读入字符串。既然您已经知道GSON,那么它应该非常简单。我的建议是避免写入临时文件,而是用读卡器包装缓冲区,并在API的 (我假设缓冲区是一个InputStream,然后使用java.io.InputStreamReader将其转换为读取器) GSON有很多API来执行您所需的任务: 示例: 要遵循迭代方法,请查看
com.google.gson.JsonParser#parse
它接受读取器或字符串来获取元素
如果您知道要反序列化的元素的类型,那么可以使用com.google.gson.gson#fromJson
方法
请参阅以下API文档,可能会有所帮助:根据索引的文件数量,文件可以是任何大小。那么MJSG建议的方法就更好了。
{
"0": [
{
"fileId": "Cache.dat",
"fileChecksum": "d41d8cd98f00b204e9800998ecf8427e"
},
{
"fileId": "Character.fbx",
"fileChecksum": "d41d8cd98f00b204e9800998ecf8427e"
},
{
"fileId": "Skybox.png",
"fileChecksum": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"1": [
{
"fileId": "indexer.pf",
"fileChecksum": "f8130e38ce5c58ccbf200d24c2629632"
}
]
}