`
Foxswily
  • 浏览: 77419 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XStream转换JSON要注意的地方

阅读更多

XStream 提供了Obj与JSON之间的转换,鉴于XStream主要面向XML的转换,JSON只是附加功能,简单说说怎么使用。

 

以下基于1.3.1版本

 

创建XStream时指定JSON解析Driver

XStream xsJson = new XStream(new JettisonMappedXmlDriver());

 官方提供了两种Driver:

    1.JsonHierarchicalStreamDriver  不依赖其他类库,只实现 obj->JSON

    2.JettisonMappedXmlDriver        依赖jettison类库,实现 JSON->obj or obj->JSON

 

两种Driver在处理相同设置的Object时会得到不同的JSON串,JsonHierarchicalStreamDriver得到的串更简洁,确如官网所说。
JsonHierarchicalStreamDriver有个小问题——默认输出带格式的JSON串,结构中带空格、换行,并且没有提供修饰方式。
覆盖createWriter方法可以解决这个问题。

public class FormatedJsonHierarchicalStreamDriver extends JsonHierarchicalStreamDriver {

    @Override
    public HierarchicalStreamWriter createWriter(Writer out) {
        return new JsonWriter(out, "", "");
    }
}

  使用新的Driver创建XStream即可

XStream xsJson = new XStream(new FormatedJsonHierarchicalStreamDriver());

 

3
0
分享到:
评论
4 楼 Foxswily 2014-08-08  
huang_yong 写道
XStream 对于 List<Map<String, Object>> 类型数据转为 JSON 格式的不够人性化,尽管使用了 Jettison 也无济于事,最后我还是使用了 Jackson,它不仅可以转 JSON,也可以转 XML。


好多年前的帖子了,现在确实在用jackson
3 楼 huang_yong 2014-08-07  
XStream 对于 List<Map<String, Object>> 类型数据转为 JSON 格式的不够人性化,尽管使用了 Jettison 也无济于事,最后我还是使用了 Jackson,它不仅可以转 JSON,也可以转 XML。
2 楼 Foxswily 2012-08-10  
jiangshuiy 写道
JsonHierarchicalStreamDriver,可是要转换回来就不行了

是的
引用

1.JsonHierarchicalStreamDriver  不依赖其他类库,只实现 obj->JSON


现在基本从XStream转向JAXB了,JSON转换可以试试Google的GSON
1 楼 jiangshuiy 2012-08-10  
JsonHierarchicalStreamDriver,可是要转换回来就不行了

相关推荐

    Xstream 类与Json之间转换

    Xstream和Json是两种广泛使用的工具,分别用于Java对象到XML和JSON格式的转换。本文将深入探讨Xstream库如何与Json进行交互,以及在实际应用中的使用。 Xstream是一个Java库,它提供了简单、高效的方式来序列化和反...

    xStream转换xml和json源码

    本篇文章将深入探讨xStream如何实现Java对象与XML和JSON的相互转换,并提供详细的代码示例。 ### 1. xStream的安装与引入 首先,你需要在项目中添加xStream的依赖。如果你使用的是Maven,可以在pom.xml文件中添加...

    XStream XML与Json转换

    XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...

    xStream完美转换XML、JSON

    xStream完美转换XML、JSON,包括XML转换成对象,以及对象转换成XML,以及对象转换成JSON,以及注意事项

    xstream将xml文档转换成json对象

    在这个场景中,我们将探讨如何使用XStream将XML文档转换成Java对象,进而转化为JSON对象。 首先,我们需要引入XStream库。XStream的核心功能是能够将Java对象和XML之间的映射自动化,极大地简化了序列化和反序列化...

    转载 xStream完美转换XML、JSON

    标题 "xStream完美转换XML、JSON" 指的是使用xStream库在Java中进行XML与JSON数据格式之间的转换。xStream是一个强大的库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。在这个场景中,它同样...

    Xstream for Json 完整范例(绝对好用)

    要实现JSON序列化,首先需要在项目中添加Xstream和Jettison的依赖。在本示例中,`xstream-1.3.1.jar`是Xstream的核心库,而`jettison-1.0.1.jar`则是提供JSON支持的库。接下来,我们需要创建Xstream实例,并配置它...

    XStream在JavaBean与XML/JSON 之间相互转换

    **XStream:JavaBean与XML/JSON之间的转换大师** XStream是一个开源库,它为Java对象提供了简单且直观的XML序列化和反序列化的解决方案。它不仅能够将Java对象转换成XML,反之亦然,还能支持JSON格式的转换。这个...

    XStream转换

    要将Java bean转换为XML,你需要创建一个XStream实例并使用它来转换对象。以下是一个简单的示例: ```java import com.thoughtworks.xstream.XStream; public class User { private String name; private int ...

    《xStream完美转换XML、JSON》学习笔记

    《xStream完美转换XML、JSON》学习笔记 在IT领域,数据交换是常见的需求,而XML和JSON作为两种广泛使用的数据格式,它们之间的转换尤为重要。xStream是一个强大的Java库,它能够轻松地将Java对象序列化为XML或反...

    json XStream

    值得注意的是,虽然XStream与Jettison结合可以处理JSON,但在某些情况下,专门针对JSON的库如Jackson或Gson可能更适合,因为它们提供了更丰富的功能和更好的性能。然而,如果你的项目已经使用了XStream并且需要处理...

    xml & json 转换工具

    在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理成JSON格式。 XML到JSON的转换通常包括以下步骤: - 解析XML文档,将其转换为DOM(Document Object Model)树。...

    XStream的Date转换 @XStreamConverter DateConverter

    标题提到的“XStream的Date转换 @XStreamConverter DateConverter”主要涉及两个核心概念:XStream的转换器(Converter)和`@XStreamConverter`注解。转换器是XStream的核心机制之一,它负责将Java对象转化为XML元素...

    使用XStream是实现XML与Java对象的转换(4)--转换器

    这就是XStream转换器的作用。 转换器分为两种类型:LocalConverter和HierarchicalStreamConverter。LocalConverter仅对特定的域对象实例进行转换,而HierarchicalStreamConverter则可以处理整个XML层级结构。 1. *...

    xml解析及使用XStream实现javaBean与xml之间的转换

    4. **XStream与JSON转换** XStream不仅支持XML,还内置了对JSON的支持。只需添加额外的转换器,如使用Jettison库,即可实现JavaBean与JSON的转换。 5. **实战演示** 在`xmlAnalysis`文件夹中,可能包含了一个简单...

    Xstream操作Xml与Json.doc

    Xstream 是一个 Java 库,用于处理 XML 文件的序列化和反序列化,同时也支持将 JavaBean 转换为 JSON 格式。它的核心理念是通过简单的 API 设计,使得 XML 序列化过程变得简洁,无需额外的映射文件或辅助类。 ### 1...

    xStream完美转换XML.docx

    【xStream 框架详解:Java对象与XML、JSON的完美转换】 xStream是一个强大的Java库,它提供了简单易用的API,用于将Java对象序列化为XML,以及将XML反序列化回Java对象。此外,xStream还支持JSON格式的转换。这个...

    XStream在Java对象和XML之间相互转换

    - **序列化**: XStream可以将一个Java对象转换成XML字符串,这个过程叫做对象的序列化。通过简单的API调用,开发者可以将复杂的Java对象结构转化为易于理解和处理的XML格式。 - **反序列化**: 反之,它也能将XML...

    xml 与json转换代码

    总结来说,XML与JSON之间的转换在开发中扮演着重要角色,而XStream库提供了一个方便的方式来实现这种转换。了解如何使用XStream进行XML与JSON的互换,并编写相应的测试,对于任何处理数据交换的Java开发者都至关重要...

Global site tag (gtag.js) - Google Analytics