java jettison_java-Jettison或Kryo

java jettison_java-Jettison或Kryo我目前正在将 JAXB 用于我正在从事的项目 并希望将我的库存档 xml 转换为存档 json 以在我的项目中执行任务 我以为我会使用 Jettison 因为它实际上可以与 JAXB 一起使用 所以它看起来像是 easiertoimpl 但是 查看不包含 Jettison 的 Olderbenchma 我发现 Kryo 生成的文件更小 并且序列化和反序列化的速度比某些替代方法更快 谁能告诉我主要的不同之

我目前正在将JAXB用于我正在从事的项目,并希望将我的库存档xml转换为存档json,以在我的项目中执行任务.我以为我会使用Jettison,因为它实际上可以与JAXB一起使用,所以它看起来像是easier to implement.但是,查看不包含Jettison的Older benchmarks,我发现Kryo生成的文件更小,并且序列化和反序列化的速度比某些替代方法更快.

谁能告诉我主要的不同之处,否则我可以将Jettison与Kryo的堆叠方式,特别是对于诸如Android应用程序之类的未来项目而言.

编辑:

我想我正在寻找产生较小文件并且运行更快的文件.因为我不打算只处理文件而只读取文件,所以会牺牲人类的可读性

解决方法:

由于您已经建立了JAXB映射并将XML转换为JSON,因此您可能会对EclipseLink JAXB(MOXy)感兴趣,它使用相同的JAXB元数据提供了对象到XML和对象到JSON的映射.

顾客

下面是带有JAXB批注的示例模型.

package forum;

import java.util.List;

import javax.xml.bind.annotation.*;

@XmlRootElement

@XmlAccessorType(XmlAccessType.FIELD)

public class Customer {

@XmlAttribute

private int id;

private String firstName;

@XmlElement(nillable=true)

private String lastName;

private List email;

}

jaxb.properties

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

input.xml

Jane

演示版

以下演示代码将从XML中填充对象,然后输出JSON.请注意,MOXy上没有编译时间相关性.

package forum;

import java.io.File;

import javax.xml.bind.*;

public class Demo {

public static void main(String[] args) throws Exception {

JAXBContext jc = JAXBContext.newInstance(Customer.class);

// Unmarshal from XML

Unmarshaller unmarshaller = jc.createUnmarshaller();

File xml = new File(“src/forum/input.xml”);

Customer customer = (Customer) unmarshaller.unmarshal(xml);

// Marshal to JSON

Marshaller marshaller = jc.createMarshaller();

marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

marshaller.setProperty(“eclipselink.media-type”, “application/json”);

marshaller.marshal(customer, System.out);

}

}

JSON输出

以下是运行演示代码的输出.

{

“customer” : {

“id” : 123,

“firstName” : “Jane”,

“lastName” : null,

“email” : [ “” ]

}

}

关于输出的一些注意事项:

>由于id字段是数字类型,因此将其编组为JSON,且不带引号.

>即使id字段是使用@XmlAttribute映射的,在JSON消息中也没有对此的特殊指示.

> email属性的大小为1,这在JSON输出中正确表示.

> xsi:nil机制用于指定lastName字段具有null值,该值已转换为JSON输出中的正确null表示形式.

欲获得更多信息

标签:serialization,deserialization,kryo,json,java

来源: https://codeday.me/bug/20191101/1980775.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207974.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:40
下一篇 2026年3月19日 下午12:40


相关推荐

  • 如何将生产环境的字段类型从INT修改为BIGINT

    如何将生产环境的字段类型从INT修改为BIGINT

    2021年11月26日
    45
  • java中workbook_java workbook 类

    java中workbook_java workbook 类workBook 处理类 Java 代码 ExcelWorkBoo 工具类 authordsy version1 0 publicclassE publicHSSFWo 在 Java 中读写 Excel 文件 Jakarta 的 POI 项目提供了一组操纵 Windows 文档的 J

    2026年3月18日
    2
  • 计算机机房装修规范_设备机房设计规范

    计算机机房装修规范_设备机房设计规范等级:文件732KB格式rar1.0.1本规范宗旨,修改原规范第1.0.1条。  采暖、通风与空调工程是基本建设领域中一个不可缺少的组成部分,它对改善劳动条件、提高生活质量、合理利用和节约能源及资源、保护环境、保证产品质量以及提高劳动生产率,都有着十分重要的意义。本次规范修订从节能、环保、安全、卫生等方面结合了近十年来国内外出现的新技术、新设备、新材料与设计、科研新成果,对有关设计标准、技术…

    2026年4月16日
    4
  • pycharm设置字体颜色_pycharm界面颜色设置

    pycharm设置字体颜色_pycharm界面颜色设置 File–>Settings–>Editor–>ColorScheme–>LanguageDefaults–>Comments–>Linecomment–>再选取自己想要的颜色即可  

    2022年8月28日
    4
  • 芯片测试术语 ,片内测试(BIST),ATE测试

    芯片测试术语 ,片内测试(BIST),ATE测试芯片测试分为如下几类 1 WAT WaferAccepta waferlevel 的管芯或结构测试 2 CP chipprobing waferlevel 的电路测试含功能 3 FT FinalTest devicelevel 的电路测试含功能 CP 测试 CP 是 waferlevel 的 chipprobing 是整个 wafer 工艺 包括 backgrind

    2026年3月19日
    1
  • 好友朋友圈动态仅三天可见?点击这个按钮,不管多久都能看

    好友朋友圈动态仅三天可见?点击这个按钮,不管多久都能看微信朋友圈可以说是了解好友的最好地方,但是现在大部分人都会设置朋友圈动态仅三天可见的权限。这样就只能看到好友三天内的朋友圈内容,其实只要点击这个按钮,多久都能看!先给大家介绍一点朋友圈小技巧吧!快速设置朋友圈权限朋友圈最烦人的就是广告了,本来想看看好友们有趣的动态,但翻了好几页都是广告。其实只需长按对方头像,就能设置不看对方的权限啦!发表纯文字朋友圈家里…

    2022年6月11日
    103

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号