Gson解析之字段名和实体类属性名不一致的处理
2016-08-03 10:34
573 查看
当接口返回的json字段名和实体类的属性名不一致时的处理:
示例json:
定义实体类Book:
解析json:
示例json:
public static final String jsonStr = "{\"title\":\"投资交流\",\"isbn-10\":\"032133678X\",\"isbn-13\":\"978-0321336781\",\"authors\":[\"Joshua Bloch\",\"Neal Gafter\"]}";
定义实体类Book:
public class Book { public String title; public String isbn1; public String isbn3; public String[] author; // 定义静态内部类-->序列化器 public static class BookDeserializer implements JsonDeserializer<Book> { @Override public Book deserialize(JsonElement json, Type arg1, JsonDeserializationContext arg2) throws JsonParseException { Book book = new Book(); JsonObject jsonObject = json.getAsJsonObject(); book.title = jsonObject.get("title").getAsString(); book.isbn1 = jsonObject.get("isbn-10").getAsString(); book.isbn3 = jsonObject.get("isbn-13").getAsString(); JsonArray jsonAuthorsArray = jsonObject.get("authors").getAsJsonArray(); String[] authors = new String[jsonAuthorsArray.size()]; for (int i = 0; i < authors.length; i++) { authors[i] = jsonAuthorsArray.get(i).getAsString(); } book.author = authors; return book; } } }
解析json:
Book book = new GsonBuilder().registerTypeAdapter(Book.class, new Book.BookDeserializer()).create().fromJsonWithNoException(jsonStr, Book.class);
相关文章推荐
- 数据库字段名称与实体类属性不一致的处理措施
- 表字段名和实体类属性名不一致的处理
- 查询出的数据记录字段要与实体类中的属性名一致
- MyBatis框架解决字段名与实体类属性名不一致的情况
- 使用Mybatis时实体类属性名和表中的字段名不一致导致结果无法映射到实体类的解决办法
- Mybatis高级映射之-数据库字段跟实体类名称不一致时的处理
- 在Mybatis中,解决数据库字段名与java实体类属性名不一致的三种方式
- Mybatis实体类属性与数据库字段不一致解决办法
- KO ------- 表中字段名和实体类属性名不一致
- MyBatis 实体类属性与表字段不一致
- KO ------- 表中字段名和实体类属性名不一致
- MyBatis学习笔记:表字段名与实体类属性名不一致的解决方法
- 第四讲 属性名和字段名不一致的处理
- Mybatis属性和数据库表字段不一致处理
- Mybatis使用数据表&实体类属性不一致时候如何处理
- MyBatis学习笔记-03.MyBatis中五种成功映射数据库字段与实体类属性不一致的解决方案
- GSON 解析json 无需在手动解析实体类
- JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
- JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
- mybatis中类属性和数据表字段不一致的解决方法