我有一个简单的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)
。。
我该怎么解决呢?
发布于 2018-08-20 03:23:30
您是否将json文件复制并粘贴到IDE中?它有没有可能带有隐藏的字符或其他一些损坏?如果是这样的话,可以创建一个新的json文件并尝试一下。
发布于 2018-08-20 03:15:04
它很适合我。请提供堆栈跟踪。
catch JsonSynstaxException and e.printStackTrace();
也就是JsonIOException
发布于 2018-08-20 03:19:56
提供的测试通过了,所以我建议你捕获异常可能对调试帮助不大:
@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);
}
}
https://stackoverflow.com/questions/51920700
复制相似问题