java - 解析 JSON 响应?

标签 java json translators

我在解析 http post 请求的 JSON 响应时遇到问题。这里Json解析有什么问题?

    HttpClient client = new DefaultHttpClient();

    HttpPost post = new HttpPost("url");

    post.addHeader("Content-Type", "application/json");
    HttpResponse response = client.execute(post);

    System.out.println(response.getStatusLine());

    JsonReader reader = new JsonReader(new InputStreamReader(response.getEntity().getContent()));
    Gson gson = new Gson();
    textConv text = gson.fromJson(reader.toString(), textConv.class);
    System.out.println(text.text);

输出

HTTP/1.1 200 OK
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
    at com.google.gson.Gson.fromJson(Gson.java:927)
    at com.google.gson.Gson.fromJson(Gson.java:892)
    at com.google.gson.Gson.fromJson(Gson.java:841)
    at com.google.gson.Gson.fromJson(Gson.java:813)
    at gsonTest.main(gsonTest.java:44)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215)
    ... 5 more

最佳答案

尝试在字符串对象数组中创建“文本”字段:

String[] text

您的响应有数组,并且您尝试将其解析为 String 对象:

{"code": 200, "lang": "en-ru", "text": ["жизнь"]}

另请参阅here例如解析数组。

关于java - 解析 JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50900218/

相关文章:

java - 在给定的基于 Java 流的代码中处理空指针

java - 如何将整数元素插入排序数组

javascript - 从数组值创建 JavaScript 对象

compiler-construction - 为我的硕士论文构建一个用于处理的翻译器

java - 无法实例化应用程序 com.google.android.gms.common.app.GmsApplication

ios - 使用 Objective-C 解析 JSON 字符串响应时出错

javascript - 访问从 CMS 返回的 JSON 数据

java - 使用 yandex api 的 Android 翻译应用程序在模拟器 TextView 中显示结果,但在真实设备中不显示

java - 创建新按钮并将其添加到下一个位置