美文网首页
注解在Gson中的应用

注解在Gson中的应用

作者: 王小贱_ww | 来源:发表于2017-06-07 23:17 被阅读522次

今天在套接口,后台返回的是数组,我用Gson.fromJson()进行解析

public static <T> List<T> stringToArray(String s, Class<T[]> clazz) {
        T[] arr = new Gson().fromJson(s, clazz);
        return Arrays.asList(arr);
    }

原本以为so easy,接口调通后,NM


QQ图片20170607204757.png

实体类中参数想写成“0”,咋办?本来想让后台改改,最后注解解决了问题。()

  @SerializedName("2")
    private String aa ;通过注解,“2”的赋值就到了aa属性上
                                同理,如果实体类转换成json字符串时,aa生成“2”
     这样就解决了Java对象中的属性名和json字段名不匹配的问题了

该快去补补注解的知识,哈哈
在Gosn中的ReflectiveTypeAdapterFactory找到这个方法


  /** first element holds the default name */
  static List<String> getFieldName(FieldNamingStrategy fieldNamingPolicy, Field f) {
    SerializedName serializedName = f.getAnnotation(SerializedName.class);
    List<String> fieldNames = new LinkedList<String>();
    if (serializedName == null) {
    //平时不加注解时,返回这个
      fieldNames.add(fieldNamingPolicy.translateName(f));
            } else {
    //当注解不为null时,取到注解的value
      fieldNames.add(serializedName.value());
      for (String alternate : serializedName.alternate()) {
        fieldNames.add(alternate);
      }
    }
    return fieldNames;
  }

再看看SerializedName注解类的源码

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface SerializedName {

  /**
   * @return the desired name of the field when it is serialized or deserialized
   */
  String value(); //用到这个方法
  /**
   * @return the alternative names of the field when it is deserialized
   */
  String[] alternate() default {};

当我们的Java对象这样写的时候

@SerializedName("XXX")
private String name;
这样在解析的时候就能转换成注解标示的字段名,我们取值可以getName();
例如返回图片的url,为了好理解我们写成String imgUrl,不用管后台接口返回什么值了("url",不形象,换掉)

相关文章

  • 注解在Gson中的应用

    今天在套接口,后台返回的是数组,我用Gson.fromJson()进行解析 原本以为so easy,接口调通后,N...

  • Gson注解应用 介绍

    在学习项目Ribble-master时需要的Gson问题总结。众所周知Gson是谷歌设计的用于json字符串解析和...

  • Gson和Type

    Gson和Type SerializedName注解 SerializedName注解提供了两个属性,value单...

  • Gson教程 Apache POI教程 Guava教程Apac

    Gson教程 Gson概述Gson环境设置Gson第一个应用Gson classGson对象序列化Gson数据绑定...

  • GSON

    需要掌握的知识点 GSON的基本用法 属性重命名 @SerializedName 注解的使用 GSON使用泛型 利...

  • 都在建议你不要直接使用 @Async 注解,为什么?

    本文讲述@Async注解,在Spring体系中的应用。本文仅说明@Async注解的应用规则,对于原理,调用逻辑,源...

  • SpringBoot深度实践之自动装配

    ① 模式注解 模式注解是一种用于声明在应用中扮演"组件"角色的注解。如spring framework中的@Rep...

  • Gson的使用进阶之注解

    Gson的五大注解 @SerializedName、@Expose、@Since、@Until、@JsonAdap...

  • GSON

    GSON弥补了JSON的许多不足的地方,在实际应用中更加适用于Java开发。在这里,我们主要讲解的是利用GSON来...

  • Android注解全面解析

    一、注解知识体系 二、基础知识 必备基础知识:了解注解 三、注解在Android中的应用 1. 利用注解代替枚举 ...

网友评论

      本文标题:注解在Gson中的应用

      本文链接:https://www.haomeiwen.com/subject/ibvafxtx.html