XStream - 使用 XStream 编写 JSON

  • 简述

    XStream 通过使用适当的驱动程序初始化 XStream 对象来支持 JSON。XStream 目前支持 JettisonMappedXmlDriver 和 JsonHierarchicalStreamDriver。
    现在让我们用 XStream 中的 json 处理来测试代码。
    在 C:\>XStream_WORKSPACE\com\jc2182\xstream 中创建一个名为 XStreamTester 的 java 类文件。
  • 文件:XStreamTester.java

    
    package com.jc2182.xstream;
    import java.io.Writer;
    import com.thoughtworks.xstream.XStream;
    import com.thoughtworks.xstream.annotations.XStreamMooas;
    import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
    import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
    import com.thoughtworks.xstream.io.json.JsonWriter;
    public class XStreamTester {
       public static void main(String args[]) {
          XStreamTester tester = new XStreamTester();
          XStream xstream = new XStream(new JsonHierarchicalStreamDriver() {
          
             public HierarchicalStreamWriter createWriter(Writer writer) {
                return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE);
             }
          });
          Student student = new Student("Mahesh","Parashar");
          xstream.setMode(XStream.NO_REFERENCES);
          xstream.alias("student", Student.class);
          
          System.out.println(xstream.toXML(student));
       }
    }
    @XStreamMooas("student")
    class Student {
       private String firstName;
       private String lastName;
       public Student(String firstName, String lastName) {
          this.firstName = firstName;
          this.lastName = lastName;
       }
       public String getFirstName() {
          return firstName;
       }
       public String getLastName() {
          return lastName;
       }   
            
       public String toString() {
          return "Student [ firstName: "+firstName+", lastName: "+ lastName+ " ]";
       }    
    }
    
  • 验证结果

    使用编译类 javac 编译器如下 -
    
    C:\XStream_WORKSPACE\com\jc2182\xstream>javac XStreamTester.java
    
    现在运行 XStreamTester 以查看结果 -
    
    C:\XStream_WORKSPACE\com\jc2182\xstream>java XStreamTester
    
    验证输出如下 -
    
    {
       "firstName": "Mahesh",
       "lastName": "Parashar"
    }