Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GSON将java.io.File解析为JSON_Java_Json - Fatal编程技术网

使用GSON将java.io.File解析为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

我正在通过网络发送一个JSON格式的文件,并希望从中检索信息。该文件是使用
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"
    }
  ]
}