我想解析JSON数组并使用gson.首先,我可以记录JSON输出,服务器清楚地响应客户端.

Here is my JSON output:

 [
      {
           id : '1',
           title: 'sample title',
           ....
      },
      {
           id : '2',
           title: 'sample title',
           ....
     },
      ...
 ]

我试着用这种 struct 进行分析.一个类,它依赖于所有JSONArray的单个arrayArrayList.

 public class PostEntity {

      private ArrayList<Post> postList = new ArrayList<Post>();

      public List<Post> getPostList() { 
           return postList; 
      }

      public void setPostList(List<Post> postList) { 
           this.postList = (ArrayList<Post>)postList; 
      } 
 }

后课堂:

 public class Post {

      private String id;
      private String title;

      /* getters & setters */
 }

When I try to use gson no error, no warning and no log:

 GsonBuilder gsonb = new GsonBuilder();
 Gson gson = gsonb.create();

 PostEntity postEnt;
 JSONObject jsonObj = new JSONObject(jsonOutput);
 postEnt = gson.fromJson(jsonObj.toString(), PostEntity.class);

 Log.d("postLog", postEnt.getPostList().get(0).getId());

怎么了,我怎么解决?

推荐答案

您可以直接解析JSONArray,不需要再次将Post类包装为PostEntity,也不需要新的JSONObject().toString():

Gson gson = new Gson();
String jsonOutput = "Your JSON String";
Type listType = new TypeToken<List<Post>>(){}.getType();
List<Post> posts = gson.fromJson(jsonOutput, listType);

Hope that helps.

Json相关问答推荐

如何使用ChoETL将复杂的JSON转换为CSV

在scala中将字符串列转换为 struct 的JSON映射

使用Jolt库对多个数组进行嵌套循环

Golang返回的JSON顶级字段是可变的.如何在 struct 中使用

使用json_query更新事实

Oracle plsql:如何将json文件加载到嵌套表中

使用快速json库编写json可以消除所有缩进

将部分数据字节解组到自定义 struct 中

如何在 jq 中按 IP 地址排序?

jq :当路径可变时更新 json 内容

使用 map_values Select 包含空格的字符串未按预期工作

Oracle json 对象的最后一个值不在引号中

Powershell v7 文本背景突出显示

派生类的属性没有得到价值

如何在 Android Studio 中将 List 字段作为空列表[]返回?

使用 json_query 过滤嵌套列表中的元素

在PowerShell中按时间戳过滤JSON

使用 jq,将对象数组转换为具有命名键的对象

将 json 转换为 C# 数组?

如何从 github API 解析链接头