首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java -如何使用Gson解析json文件

Java -如何使用Gson解析json文件
EN

Stack Overflow用户
提问于 2018-08-20 02:34:56
回答 3查看 3.5K关注 0票数 1

我有一个简单的json文件,如下所示

代码语言:javascript
复制
{ 
  "user":"giovanni"
}

这是我用java编写的类:

代码语言:javascript
复制
package maven.project;

import java.io.*;
import com.google.gson.*;

public class Prova {
    public static void main(String[] args)throws JsonSyntaxException, 
     JsonIOException, FileNotFoundException{

        String path = "/Users/matte/Desktop/project/src/main/java/maven/project/1.json";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
        Gson gson = new Gson();
        JsonObject js = gson.fromJson(bufferedReader, JsonObject.class);
        String user =  js.get("user").getAsString();
        System.out.println("user: " + user);
    }
}

但是运行它时,我发现了这个错误

代码语言:javascript
复制
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 3 column 26
        at com.google.gson.Gson.fromJson(Gson.java:809)
        at com.google.gson.Gson.fromJson(Gson.java:734)
        at Prova.main(Prova.java:11)
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 3 column 26
        at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1310)

。。

我该怎么解决呢?

EN

回答 3

Stack Overflow用户

发布于 2018-08-20 03:23:30

您是否将json文件复制并粘贴到IDE中?它有没有可能带有隐藏的字符或其他一些损坏?如果是这样的话,可以创建一个新的json文件并尝试一下。

票数 1
EN

Stack Overflow用户

发布于 2018-08-20 03:15:04

它很适合我。请提供堆栈跟踪。

代码语言:javascript
复制
catch JsonSynstaxException and e.printStackTrace();

也就是JsonIOException

票数 0
EN

Stack Overflow用户

发布于 2018-08-20 03:19:56

提供的测试通过了,所以我建议你捕获异常可能对调试帮助不大:

代码语言:javascript
复制
@RunWith(BlockJUnit4ClassRunner.class)
public class HttpServerTest {

    @Test
    public void test() throws FileNotFoundException {

        String path = "test.json";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(path));

        Gson gson = new Gson();
        JsonObject js = gson.fromJson(bufferedReader, JsonObject.class);
        String user = js.get("user").getAsString();
        assertEquals("giovanni", user);
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51920700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档