Gson使用google的JsonReader读取Json文件并转化成对象

Posted endian11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gson使用google的JsonReader读取Json文件并转化成对象相关的知识,希望对你有一定的参考价值。

  • 使用到的类 Gson
    • android Studio中搜索Gson library dependcies 只能使用小写,gson;否则会搜不到;
  • JsonReader是使用google的JsonReader,在导入Gson library的时候,已经导入了;
  • json文件上的字段,应与你建立的数据库表字段保持一致,否则会出错
    • public class Student {
          @PrimaryKey
          @NonNull
          @ColumnInfo(name = "stu_id")
          private long stu_id;
      
          @NonNull
          @ColumnInfo(name = "name")
          private String name;
      
          //身份证
          @ColumnInfo(name = "ID")
          private String ID;
      
          //性别 0-男 1-女
          @ColumnInfo(name = "sex")
          private int sex;
      }
      
    • json文件
      [
        {
          "stu_id":1000,
          "ID": "410923198910162546",
          "name": "张三",
          "sex":1
        },
        {
          "stu_id":1001,
          "ID": "410923198910162545",
          "name": "李四",
          "sex":2
        }
      ]

       

  • 使用Type 、TypeToken
  • 整体代码
      InputStream inputStream = getApplicationContext().getAssets().open("students_file.json");
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                JsonReader jsonReader = new JsonReader(inputStreamReader);
    
                Gson gson = new Gson();
                Type type = new TypeToken<List<Student>>(){}.getType();
    
               List<Student> mstus=gson.fromJson(jsonReader,   type);

     

以上是关于Gson使用google的JsonReader读取Json文件并转化成对象的主要内容,如果未能解决你的问题,请参考以下文章

Retrofit com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept

使用 JsonReader 读取动态 json 文件

使用 GSON 的 JsonReader 流式传输 Json 文件时,您可以将对象转储为字符串吗?

我如何查看从 GSON JsonReader 收到了多少字节

Gson全解析之一:JsonReader的beginObject()

Gson全解析之二:JsonReader的其它方法