繁体   English   中英

java.lang.IllegalStateException:应为 BEGIN_OBJECT 但在第 1 行第 2 列路径 $ 处为 BEGIN_ARRAY。 如何将 json 转换为 class Object

[英]java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $. How to convert json to class Object

我正在尝试以格式获取数据

   {
   "posts": [
             { "id": 1, "title": "json-server", "author": "typicode" }
          ]
    }

我收到错误“java.lang.IllegalStateException:预期 BEGIN_OBJECT 但在第 1 行第 2 列路径 $ 处是 BEGIN_ARRAY”

// 我将数据转换为 gson 格式的代码

       public static PostData sendGetReq(apiUrl,Class<PostData> PostData){
           String apiUrl = "http://localhost:3000/posts";
           Header headers[] = { new BasicHeader("Accept", "application/json")};
           get.setHeaders(headers);
           CloseableHttpClient client = HttpClients.custom().build();
           HttpResponse response = client.execute(get);
           String result = IOUtils.toString(response.getEntity().getContent(), 
           StandardCharsets.UTF_8);
           
           Gson gson = new Gson();
           PostData postData = gson.fromJson(result, PostData.class);
           return postData;
       }

请帮忙。 谢谢

// 我的 class 用于 PostData

           public class PostData{
                public int id;
                public String title;
                public String author;
                public int getId() {
                  return id;
                }

             public void setId(int id) {
                   this.id = id;
             } 
               public String getTitle() {
                  return title;
                }

             public void setTitle(String title) {
                   this.title = title;
             }
             public String getAuthor() {
                  return author;
                }

             public void setAuthor(String author) {
                   this.author = author;
             }
             }

请帮助。谢谢

您的 json 提供了对象列表(或数组),但您正在尝试将 map 到单个 PostData object。

尝试

List<PostData> postData = gson.fromJson(result, PostData.class);
return postData.get(0);

或类似的东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM