当前位置: 首页 > news >正文

网站建立吸引人的策划活动温州快速建站公司

网站建立吸引人的策划活动,温州快速建站公司,wordpress 4.0 谷歌字体,wordpress卡蜜销售如果您错过了系列的第一篇文章 #xff0c;我们将继续上一篇文章的“使用GSON ” #xff0c;这里是link 。 因此#xff0c;这里我们进行另一系列的讨论。 版本支持 如果要维护一个对象的多个版本以进行JSON转换#xff0c;则Google GSON库具有不错的Since注释。 该注释可… 如果您错过了系列的第一篇文章 我们将继续上一篇文章的“使用GSON ” 这里是link 。 因此这里我们进行另一系列的讨论。 版本支持 如果要维护一个对象的多个版本以进行JSON转换则Google GSON库具有不错的Since注释。 该注释可以应用于字段和类。 例如假设您正在维护REST API的多个版本并且使用JSON作为最终响应负载。 在API的下一个迭代中将为特定的JSON实体添加一些字段并且您不想将新添加的字段发送到以前的API版本那么Since注释就会出现。 让我们在下面的清单中看到我们如何使用此功能。 要使用此注释您必须使用GsonBuilder将Gson实例配置为特定版本。 public class Example33 {public static void main(String[] args) {Gson gson new GsonBuilder().setVersion(2.0).create();String json gson.toJson(new ExampleClass());System.out.println(Output for version 2.0...);System.out.println(json);gson new GsonBuilder().setVersion(1.0).create();json gson.toJson(new ExampleClass());System.out.println(\nOutput for version 1.0...);System.out.println(json);gson new Gson();json gson.toJson(new ExampleClass());System.out.println(\nOutput for No version set...);System.out.println(json);} }class ExampleClass{String field field;// this is in version 1.0Since(1.0) String newField1 field 1;// following will be included in the version 1.1Since(2.0) String newField2 field 2; } 上面的输出为 Output for version 2.0... {field:field,newField1:field 1,newField2:field 2}Output for version 1.0... {field:field,newField1:field 1}Output for No version set... {field:field,newField1:field 1,newField2:field 2} 如果您未指定任何版本则无论其版本如何它将包括所有字段。 禁用HTML转义 默认情况下在转换过程中所有包含的html字符都将转换为它们对应的Unicode即到\ u003c 到\ u003e 到\ u0026依此类推。 要按原样传递html字符您需要将gson实例配置为使用GsonBuilderdisableHtmlEscaping方法。 以下清单显示了用法 public class Example34 {public static void main(String[] args) {String str myval;Gson gson new Gson();System.out.println(Normal behaviour...);System.out.println(gson.toJson(str));System.out.println(\nDisabled html escaping...);gson new GsonBuilder().disableHtmlEscaping().create();System.out.println(gson.toJson(str));} } 输出如下 Normal behaviour... \u003cmyval\u003eDisabled html escaping... myval从Json Output中排除字段 为此Google GSON有4种处理方式 具有瞬态和静态修饰符的字段 排除具有特定修饰符的字段 使用公开注释 用户定义的排除策略 让我们详细了解每个 具有瞬态和静态修饰符的字段 这是默认行为在其中使用瞬态修饰符修改字段时将不包含该字段正如我们在系列文章的第一篇文章中所看到的那样当然具有静态修饰符的字段也将被排除因为它们是类的一部分而不是实例的一部分。 排除具有特定修饰符的字段 您可以配置gson实例以便它将排除具有指定修饰符的字段例如您可以排除/忽略具有保护修饰符或私有修饰符的字段。 要利用此功能您需要使用GsonBuilderexcludeFieldsWithModifiers 如以下一系列清单所示。 class Developer {private String name;private String classz;ListString languagesKnown;public Developer() {name ajduke;classz Developer;languagesKnown new ArrayList();languagesKnown.add(Java);languagesKnown.add(Scala);languagesKnown.add(Ruby);} } 对于此示例我们不包括私有字段。 尽管您可以使用任何修饰符适用于字段的任何修饰符排除字段 Gson gson new Gson();System.out.println(Default behaviour ); GsonBuilder gsonBuilder new GsonBuilder(); Gson prettyGson gsonBuilder.setPrettyPrinting().create(); String json prettyGson.toJson(new Developer()); System.out.println(json);System.out.println(Ignoring/excluding fields );GsonBuilder excludeFieldsWithModifiers gsonBuilder.excludeFieldsWithModifiers(Modifier.PRIVATE);Gson create excludeFieldsWithModifiers.create(); String json2 create.toJson(new Developer()); System.out.println(json2); 在以下输出中您可以看到按照我们的程序排除了私有字段尽管您可以忽略可以进行保护同步等操作的字段。 Default behaviour {name: ajduke,classz: Developer,languagesKnown: [Java,Scala,Ruby] }Ignoring/excluding fields {languagesKnown: [Java,Scala,Ruby] } 使用公开注释 Gson还提供了一个注释您可以为这些字段进行标记因此这些字段将从序列化输出中排除。 为了使用这个我们需要遵循以下两个 如下配置gson实例 Gson gson GsonBuilder。excludeFieldsWithoutExposeAnnotation。create 并使用Expose批注标记字段这些批注将包含在最终的json输出中。 因此未标记的将被排除 以下清单显示了详细用法 class Developer {// this field will be includedExposeprivate String name;private String classz;ListString languagesKnown;public Developer() {name ajduke;languagesKnown new ArrayList();languagesKnown.add(Java);languagesKnown.add(Scala);languagesKnown.add(Ruby);} }public class GsonEx {public static void main(String[] args) throws IOException {Gson gson new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();String json gson.toJson(new Developer());System.out.println(json);} } 输出如下 {name:ajduke} 用户定义的排除策略 Google Gson库根据字段类型和字段属性提供非常细致的字段排除。 为此您需要通过实现接口的两个方法如shouldSkipClass和ShouldSkipField来实现ExclusionStrategy接口。 前者可以实现为将基于其类型跳过字段而后可以基于字段属性例如其修饰符其注释等实现 现在在实现ExclusionStrategy接口之后您需要将其传递给GsonBuildersetExclusionStrategies方法以配置gson实例。 以下是使用排除策略的最低限度实现其中我们排除类型为StringList的字段以及具有注释为Deprecated的字段 请注意ExclusionStrategy的以下实现 class ExclusionStrategyImpl implements ExclusionStrategy {private final Class? classTypeToSkip;public ExclusionStrategyImpl(Class? classTypeToSkip) {this.classTypeToSkip classTypeToSkip;}Overridepublic boolean shouldSkipClass(Class? claz) {return classTypeToSkip claz;}Overridepublic boolean shouldSkipField(FieldAttributes fa) {return fa.getAnnotation(Deprecated.class) !null;} } 我们的自定义Developer类用于显示示例 class Developer {Deprecatedprivate int count 45;private String name;private String classz;ListString languagesKnown;public Developer() {name ajduke;classz Developer.class.getCanonicalName();languagesKnown new ArrayList();languagesKnown.add(Java);languagesKnown.add(Scala);languagesKnown.add(Ruby);} }public class Ex35 {public static void main(String[] args) {Gson gson null;Developer developer new Developer();String json null;gson new Gson();json gson.toJson(developer);System.out.println(Default behaviuor....);System.out.println(json);// exclude field having Stringgson new GsonBuilder().setExclusionStrategies(new ExclusionStrategyImpl(List.class)).create();json gson.toJson(developer);System.out.println(\nExclude fields with type - List);System.out.println(json);// exclude field having List gson new GsonBuilder().setExclusionStrategies(new ExclusionStrategyImpl(String.class)).create();json gson.toJson(developer);System.out.println(\nExclude fields with type - String);System.out.println(json);} } 上面的输出如下 Default behaviuor.... {count:45,name:ajduke,classz:in.ajduke.ap013.Developer,languagesKnown:[Java,Scala,Ruby]}Exclude fields with type - List {name:ajduke,classz:in.ajduke.ap013.Developer}Exclude fields with type - String {languagesKnown:[null,null,null]} 使用字段命名策略的自定义字段命名 正如我们在上一篇文章中看到的Gson默认包含与类字段名称相同的输出json字段名称我们也可以使用批注serilizedName覆盖它。 在Gson中我们还可以定义json字段名称以更改为大写小写等而无需使用任何注释。 为此您需要使用GsonBuilder。setFieldNamingPolicy方法并传递适当的FieldNamePolicy 以下清单显示了用法 package in.ajduke.ap013;import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder;public class Example34 {public static void main(String[] args) {Gson gson new Gson();String json gson.toJson(new JsonClass());System.out.println(Default behaviour....);System.out.println(json);gson new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();json gson.toJson(new JsonClass());System.out.println(\nFields with lower case with dashes...);System.out.println(json);gson new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES).create();json gson.toJson(new JsonClass());System.out.println(\nFields with upper case with spaces...);System.out.println(json);} }class JsonClass {String myField value1;String myAnotherField value2; }Default behaviour.... {myField:value1,myAnotherField:value2}Fields with lower case and dashes... {my-field:value1,my-another-field:value2}Fields with lower case and dashes... {My Field:value1,My Another Field:value2} 参考 使用Google GSON额外的东西来自我们的JCG合作伙伴 Abhijeet Sutar的 第二部分来自ajduke的博客博客。 翻译自: https://www.javacodegeeks.com/2014/01/using-google-gson-extra-goodies-part-ii.html
http://www.pierceye.com/news/17828/

相关文章:

  • wordpress 主题 edu西安网站推广优化
  • 江苏住房建设厅网站子主题wordpress插件
  • 学校学院网站建设目标效果图参考网站
  • 大型用户网站建设商丘互联网营销推广
  • wordpress 演示站国内网站建设哪家好
  • 沃然建站平台官网wordpress 更新过慢
  • 江苏茂盛建设有限公司网站湖南网页制作公司
  • 优化网站标题和描述的方法网站icp不备案有关系吗
  • 大学生做网站怎么赚钱青海省建设局网站首页
  • 免费做网站的优缺点内蒙和城乡建设部网站
  • 河南省建设行业证书查询网站中国代加工网站
  • 淄博做网站的网络公司软件设计工具有哪些
  • 百度深圳网站开发搜索视频制作软件推荐
  • 全国最好的网站建设案例环境设计专业就业方向
  • 网站建设风格定位网站建设问题新闻资讯
  • 网站标签title河北省住房和城乡建设部网站首页
  • 商业网站是怎么做的广州番禺网站公司
  • 网站建设规划模板网站可分析
  • 中英文网站建站温州网站建设前十公司
  • 网站开发如何处理兼容性问题wordpress伪静态 page
  • 快递网站怎么做的网站建设加数据库
  • 网站seo分析报告如何做淘宝联盟网站的推广
  • 建设银行公积金预约网站移动端的网站怎么做
  • 定制彩票网站开发做网站要固定ip
  • 网站打开的速度慢登录免费注册网址
  • weex做网站搭建服务器教程
  • 2003服务器怎么挂网站万能浏览器app
  • 如何规划设计一个网站php网站开发txt
  • 网站ie8兼容性wordpress修改固定连接403
  • 西宁网站设计网站空间选linux