我有一个像这样的简单 json 文件
{
"user":"giovanni"
}
这是我用java编写的类:
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);
}
}
但是运行它我发现这个错误
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)
..
如何解决?
最佳答案
提供的测试通过,所以我建议你捕获异常可能对调试有一点帮助:
@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);
}
}
关于Java - 如何使用Gson解析json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51920700/