1. CharMatcher

String serviceUrl = CharMatcher.is('/').trimTrailingFrom(ConfigHelper.metaServiceUrl()) + "/storage/query?appid=" + ConfigHelper.appId() + "&feature=1";

2. Precondition

Preconditions.checkArgument(!Strings.isNullOrEmpty(namespace), "参数namespace不能为空");

3. JsonParser

 JsonObject content = new JsonParser().parse(response).getAsJsonObject();
int status =content.get("status").getAsInt();
if (status != 200)
throw new Exception("加载meta信息出现异常,status:" + status);
for (JsonElement jsonElement : content.get("result").getAsJsonArray()) {
JsonObject item = jsonElement.getAsJsonObject();
StorageInfo storage = new StorageInfo();
String namespace = item.get("namespace").getAsString().toLowerCase();
storage.setStorageName(item.get("storageName").getAsString());
storage.setStorageType(StorageType.fromId(item.get("storageType").getAsInt()));
result.put(namespace, storage);
}

4. Strings

Strings.isNullOrEmpty(namespace)

5. 对于bean 中有部分属性需要忽略

解决方案:(使用ExclusionStrategy)

创建注解类 Exclude

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Exclude {
}

在gson中配置 忽略带有Exclude的属性:

Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy(){
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getAnnotation(Exclude.class) != null;
} @Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
})

使用时在需要忽略的属性上标记@Exclude 即可:

class Mock{
String name;
String age;
@Exclude
String gender;
}

------------------------

指定哪些是要暴露转换的属性

@Expose
private Integer businessId;

但这个时候要用

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
BusinessSystem bus = (BusinessSystem) (gson.fromJson(data,
BusinessSystem.class));

6. 自定义序列化字段名字

@SerializedName("email_address")
public String emailAddress;

7. 泛型在Gson中的使用

//数组
String jsonss = "[\"aa\",\"bb\",\"cc\"]";
String[] ss = gson.fromJson(jsonss, String[].class);
for (String s:ss) {
Log.i(TAG,s);
}
String s = gson.toJson(ss);
Log.i(TAG,s); //List
List<String> list=gson.fromJson(jsonss, new TypeToken<List<String>>() {}.getType());
List<User> list=gson.fromJson(jsonss, new TypeToken<List<User>>() {}.getType());
//也就是说,GSON把json转换为JAVA泛型对象的时候,要先定义好
//Type collectionType = new TypeToken<GenericModel<Integer>>(){}.getType()

最新文章

  1. couchDB文档
  2. unity3d编辑器——检视面板部分(一)
  3. 在MAC上搭建tomcat,再使用servlet时遇到的问题。
  4. List Comprehensions
  5. 屏蔽ios7中某个页面的默认手势滑回返回
  6. PHP的$_SERVER[&#39;HTTP_HOST&#39;]获取服务器地址功能详解
  7. ASP.NET的GET和POST方式的区别归纳总结
  8. ueditor富文本编辑的使用方法
  9. 利用Winscp,Putty实现Windows下编写Linux程序
  10. 【luogu3384】【模板】树链剖分
  11. Java赋值
  12. DataGridView样式生成器使用说明
  13. Linux系统学习之进程管理
  14. linux-shell-变量参数
  15. linux及安全第三周总结——跟踪分析LINUX内核的启动过程
  16. linux下python3.5环境搭建
  17. MATLAB 图像归一化
  18. vue.set动态新增对象属性,触发dom渲染
  19. java二维码的生成与解析代码
  20. go 切片

热门文章

  1. golang_elasticsearch 多精确值匹配
  2. Linux x64系统上安装 oracle 11g R2 x64
  3. winserver2012 自启动软件
  4. Windows平台使用RMAN命令自动删除Oracle过期归档日志的方法
  5. Spark学习笔记——在远程机器中运行WordCount
  6. win7怎么打开加锁文件夹
  7. ASP.NET MVC 4 (九) 模型绑定
  8. OSG模拟鼠标事件影响操纵器
  9. 关于rem适配的3种常用封装
  10. C#自定义Winform无边框窗体