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

网站建设申请计划跟网站开发有关的内容

网站建设申请计划,跟网站开发有关的内容,专门做辅助的网站,wordpress 与现有ssogson json和类转换经过多年使用org.json库在Java中支持JSON数据交换格式后#xff0c;我已切换到Google Gson 。 org.json是一个较低层的库#xff0c;因此您必须创建JSONObject#xff0c;JSONArray#xff0c;JSONString等…并执行其他低层工作。 Gson简化了这项工作。 它… gson json和类转换 经过多年使用org.json库在Java中支持JSON数据交换格式后我已切换到Google Gson 。 org.json是一个较低层的库因此您必须创建JSONObjectJSONArrayJSONString等…并执行其他低层工作。 Gson简化了这项工作。 它提供了简单的toJson和fromJson方法可将任意Java对象转换为JSON反之亦然支持Java泛型允许对对象进行自定义表示生成紧凑且可读性强的JSON输出并具有许多其他优点。 我越来越喜欢它。 使用很简单。 假设我们有一个叫做Circle的类。 public class Circle {private int radius 10;private String backgroundColor #FF0000;private String borderColor #000000;private double scaleFactor 0.5;...// getter / setter } 序列化Java对象– JSON可以如下进行 Circle circle new Circle(); Gson gson new Gson(); String json gson.toJson(circle); json is {radius: 10,backgroundColor: #FF0000,borderColor: #000000,scaleFactor: 0.5,... } 反序列化JSON – Java对象只是一行代码 Circle circle2 gson.fromJson(json, Circle.class); circle2 is the same as the circle above 一切都像魅力。 我只遇到抽象类一个问题。 假设我们有一个抽象类AbstractElement和许多其他类来扩展这一类 public abstract class AbstractElement {private String uuid;// getter / setter }public class Circle extends AbstractElement {... }public class Rectangle extends AbstractElement {... }public class Ellipse extends AbstractElement {... } 现在假设我们将所有具体类存储在使用AbstractElement参数化的列表或映射中 public class Whiteboard {private MapString, AbstractElement elements new LinkedHashMapString, AbstractElement();... } 问题是在反序列化过程中未公开具体类。 在Whiteboard的JSON表示中未知。 如何从JSON表示形式实例化正确的Java类并将其放入Map StringAbstractElement元素中 我在文档中找不到任何解决该问题的方法。 显然我们需要在有关具体类的JSON表示中存储元信息。 这是肯定的。 Gson允许您注册自己的自定义序列化器和反序列化器。 这是Gson的强大功能。 有时默认表示不是您想要的。 例如在处理第三方库类时通常就是这种情况。 有足够的示例说明如何编写自定义序列化器/反序列化器。 我将创建一个实现两个接口JsonSerializerJsonDeserializer的适配器类并将其注册为我的抽象类AbstractElement。 GsonBuilder gsonBilder new GsonBuilder(); gsonBilder.registerTypeAdapter(AbstractElement.class, new AbstractElementAdapter()); Gson gson gsonBilder.create(); 这是AbstractElementAdapter package com.googlecode.whiteboard.json;import com.google.gson.*; import com.googlecode.whiteboard.model.base.AbstractElement; import java.lang.reflect.Type;public class AbstractElementAdapter implements JsonSerializerAbstractElement, JsonDeserializerAbstractElement {Overridepublic JsonElement serialize(AbstractElement src, Type typeOfSrc, JsonSerializationContext context) {JsonObject result new JsonObject();result.add(type, new JsonPrimitive(src.getClass().getSimpleName()));result.add(properties, context.serialize(src, src.getClass()));return result;}Overridepublic AbstractElement deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)throws JsonParseException {JsonObject jsonObject json.getAsJsonObject();String type jsonObject.get(type).getAsString();JsonElement element jsonObject.get(properties);try {return context.deserialize(element, Class.forName(com.googlecode.whiteboard.model. type));} catch (ClassNotFoundException cnfe) {throw new JsonParseException(Unknown element type: type, cnfe);}} } 我添加了两个JSON属性-一个是“类型”另一个是“属性”。 第一个属性保存AbstractElement的具体实现类简单名称第二个属性保存序列化对象本身。 JSON看起来像 {type: Circle,properties: {radius: 10,backgroundColor: #FF0000,borderColor: #000000,scaleFactor: 0.5,...} } 在反序列化过程中我们受益于“类型”属性。 现在可以通过Class.forName“ com.googlecode.whiteboard.model。” type实例化具体类其中“ com.googlecode.whiteboard.model”。 type是完全限定的类名。 以下通话 public T T deserialize(JsonElement json, Type typeOfT) throws JsonParseException JsonDeserializationContext中的from会在指定对象上调用默认反序列化并完成作业。 参考 带有GSON的JSON和来自JCG合作伙伴 Oleg Varaksin的抽象类 在软件开发博客上。 翻译自: https://www.javacodegeeks.com/2012/04/json-with-gson-and-abstract-classes.htmlgson json和类转换
http://www.zqtcl.cn/news/40302/

相关文章:

  • 公司网站设计开发公司网站建设售后
  • 如何进行网站设计规划云教育科技网站建设
  • 做个有用网站做前端项目怎么进行网站切图
  • 企业网站实施方案跨境电商营销策划方案
  • 备案号查询网站网址电脑首页wordpress
  • 怎么看得出网站是哪个公司做的公众号取名简单大气
  • html5自建网站高校思政专题网站建设
  • sns社交网站有哪些wordpress 中英
  • 摄像机怎么在自己家网站做直播浙江省建设厅继续教育网站首页
  • 网站开发语言手册wordpress更改后台管理跳转
  • asp.net网站制作视频教程北京seo优化推广
  • 网站套用模板衡水做淘宝网站
  • 四川省建设厅官方网站电话泉州网络白名单
  • 网站开发需求分析范本上海临时工400元一天
  • 关于公司网站建设的若干意见免费解析素材网站
  • 各大网站开发语言医疗类网站建设
  • 上海站优云网络科技有限公司深圳品牌网站建设公司
  • 建站公司现状学校网站的页头图片做
  • 网站监控系统有网站加金币的做弊器吗6
  • HTML可以做彩票网站吗wordpress博客注册
  • 如何在学校网站上做链接宁波厂家关键词优化
  • 电商网站如何设计内容徐州网站建设xzqjw
  • 东阳网站建设报价湛江公司网站建设
  • 静态网站后台温州门户网站建设
  • 江苏10大网站建设公司wordpress防止发表重复标题的文章
  • 天河区pc端网站建设太原网站网络推广
  • 京东网站开发网站建设需要些什么
  • 网站做销售是斤么工作郑州官网首页
  • 做网站找浩森宇特自动链接 wordpress
  • 鄂州网站建设php 除了做网站