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

天猫网站建设可行性分析怎么下载网站动态图片

天猫网站建设可行性分析,怎么下载网站动态图片,电子商务平台经营者所具备的功能,寿光网站建设价格长期以来#xff0c;JSON已成为客户端和服务器之间各种数据序列化的事实上的标准。 除其他外#xff0c;它的优势是简单和易于阅读。 但是#xff0c;简单起了一些限制#xff0c;我今天要谈的其中一个限制是#xff1a;存储和检索多态Java对象。 让我们从一个简单的问题开… 长期以来JSON已成为客户端和服务器之间各种数据序列化的事实上的标准。 除其他外它的优势是简单和易于阅读。 但是简单起了一些限制我今天要谈的其中一个限制是存储和检索多态Java对象。 让我们从一个简单的问题开始过滤器的层次结构。 有一个抽象类AbstractFilter和两个子类RegexFilter和StringMatchFilter 。 package bean.json.examples;public abstract class AbstractFilter {public abstract void filter(); } 这是RegexFilter类 package bean.json.examples;public class RegexFilter extends AbstractFilter {private String pattern;public RegexFilter( final String pattern ) {this.pattern pattern;}public void setPattern( final String pattern ) {this.pattern pattern;}public String getPattern() {return pattern;}Overridepublic void filter() {// Do some work here} } 这是StringMatchFilter类 package bean.json.examples;public class StringMatchFilter extends AbstractFilter {private String[] matches;private boolean caseInsensitive;public StringMatchFilter() {}public StringMatchFilter( final String[] matches, final boolean caseInsensitive ) {this.matches matches;this.caseInsensitive caseInsensitive;}public String[] getMatches() {return matches;}public void setCaseInsensitive( final boolean caseInsensitive ) {this.caseInsensitive caseInsensitive;}public void setMatches( final String[] matches ) {this.matches matches;}public boolean isCaseInsensitive() {return caseInsensitive;}Overridepublic void filter() {// Do some work here} } 没什么纯Java Bean。 现在如果我们需要将AbstractFilter实例的列表存储到JSON更重要的是要从JSON重新构造此列表该怎么办 以下类Filters演示了我的意思 package bean.json.examples;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection;public class Filters {private Collection AbstractFilter filters new ArrayList AbstractFilter ();public Filters() {}public Filters( final AbstractFilter ... filters ) {this.filters.addAll( Arrays.asList( filters ) );}public Collection AbstractFilter getFilters() {return filters;}public void setFilters( final Collection AbstractFilter filters ) {this.filters filters;} } 由于JSON是文本的平台无关的格式因此它不包含任何类型特定的信息。 得益于出色的Jackson JSON处理器它可以轻松完成。 因此让我们将Jackson JSON处理器添加到我们的POM文件中 projectmodelversion4.0.0/modelversiongroupidbean.json/groupidartifactidexamples/artifactidversion0.0.1-SNAPSHOT/versionpackagingjar/packagingpropertiesproject.build.sourceencodingUTF-8/project.build.sourceencoding/propertiesdependenciesdependencygroupidorg.codehaus.jackson/groupidartifactidjackson-mapper-asl/artifactidversion1.9.6/version/dependency/dependencies/project 完成此步骤后我们需要告诉Jackson 我们打算将类型信息与对象一起存储在JSON中以便稍后可以从JSON重建确切的对象。 很少有AbstractFilter上的注释可以做到这一点。 import org.codehaus.jackson.annotate.JsonSubTypes; import org.codehaus.jackson.annotate.JsonSubTypes.Type; import org.codehaus.jackson.annotate.JsonTypeInfo; import org.codehaus.jackson.annotate.JsonTypeInfo.Id;JsonTypeInfo( use Id.NAME ) JsonSubTypes({Type( name Regex, value RegexFilter.class ),Type( name StringMatch, value StringMatchFilter.class )} ) public abstract class AbstractFilter {// ... } 而且...就是这样 跟随帮助器类的工作是肮脏的工作即将过滤器序列化为字符串然后使用Jackson的 ObjectMapper从字符串反序列化它们 package bean.json.examples;import java.io.IOException; import java.io.StringReader; import java.io.StringWriter;import org.codehaus.jackson.map.ObjectMapper;public class FilterSerializer {private final ObjectMapper mapper new ObjectMapper();public String serialize( final Filters filters ) {final StringWriter writer new StringWriter();try {mapper.writeValue( writer, filters );return writer.toString();} catch( final IOException ex ) {throw new RuntimeException( ex.getMessage(), ex );} finally {try { writer.close(); } catch ( final IOException ex ) { /* Nothing to do here */ }}}public Filters deserialize( final String str ) {final StringReader reader new StringReader( str );try {return mapper.readValue( reader, Filters.class );} catch( final IOException ex ) {throw new RuntimeException( ex.getMessage(), ex );} finally {reader.close();}} } 让我们看看实际情况。 以下代码示例 final String json new FilterSerializer().serialize(new Filters(new RegexFilter( \\d ),new StringMatchFilter( new String[] { String1, String2 }, true )) ); 产生以下JSON { filters:[{type:Regex,pattern:\\d},{type:StringMatch,matches:[String1,String2],caseInsensitive:true}] } 如您所见 “ filters”集合中的每个条目都具有属性“ type” 该属性具有我们通过注释AbstractFilter类指定的值。 调用new FilterSerializer。deserializejson会生成完全相同的Filters对象实例。 参考我们的JCG合作伙伴 Andrey Redko在Andriy Redko {devmind}博客上提供了用于多态Java对象序列化的JSON 。 翻译自: https://www.javacodegeeks.com/2012/05/json-for-polymorphic-java-object.html
http://www.yutouwan.com/news/499715/

相关文章:

  • 网站建设和使用情况网站模板下载器
  • 怎么在虚拟空间做两个网站建设宁波市分行的互联网网站
  • 翻译做网站怎么给自己的网站设置关键词
  • 济南机关建设网站网站界面是什么做的
  • 给网站网站做推广犯法网上怎样查询企业资质
  • 网站文案怎么做上海专业做网站的公司有哪些
  • canva可画在线设计平台网站怎么做seo优化啊
  • wordpress站点设置使用期限中国企业公示信息网
  • 网站建设及数据分析线上线下推广是什么意思
  • 牡丹江seo网站推广蜘蛛屯优化排名网站做一样没有侵权吧
  • 开发一套网站价格外贸推广信邮件
  • 网站主办者单位有效证件电子件是什么长沙微网站建设公司
  • 网站改版总结二级建造师证报考条件
  • 做网站预付款是多少wordpress黑暗
  • WordPress网站转HTPPS上传文件到网站
  • 做网站链接怎么做成都专业网站建设
  • 做高仿表网站容易被k吗深圳地铁
  • 建网站要备案深圳企业网站建设推广服务
  • 网站不维护会怎么样沧州网站运营
  • 扬州广陵区城乡建设局网站做app网站的公司
  • 外贸企业网站模版东莞购物网站建设
  • 华为网站建设建议浏览器打开mht文件乱码
  • 响应式布局代码怎么写seo搜索引擎优化推广
  • 网站建站 优化推广美词网站建设
  • 帮别人设计网站的网站吗建设工程安全监督备案网站
  • 不写代码做网站公司介绍怎么写
  • 响应式网站和普通网站不同电商网站建设标准
  • 教育培训门户网站源码服务好的网站建设联系人
  • 润商网站建设服务网络营销专业培训机构
  • 外贸营销型网站设计东莞网站关键字