快速业务通道

对比XStream和JSON - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

对比XStream和JSON

时间:2011-04-05 BlogJava

XStream是thoughtworks开发的开源产品,采用的是xpp来进行xml和对象之间的转换。 它不需要schema或其他的mapping文件就可以进行java对象和xml文件之间的转换,API调 用起来非常方便,并且扩展功能强大。

网址:http://xstream.codehaus.org

JSON是目前比较流行的轻量级的对象数据转换方式,常常用在ajax和web service领域 。目前大部分语言都有JSON的实现。Java领域有json lib,还有xstream json(jettison) 。

网址:http://json-lib.sourceforge.net/

http://jettison.codehaus.org

主要是对3者 (xstream, json lib, xstream json) 转换的数据长度,还有转换的效 率做个比较。

转换的java类为:

package com.ldd600.ws;

public class Employee {   private String name;   private int age;   private Address address;   private double salary;   private boolean isActive;   private char sexy;   public String getName() {     return name;   }   public void setName(String naem) {     this.name = naem;   }   public int getAge() {     return age;   }   public void setAge(int age) {     this.age = age;   }   public Address getAddress() {     return address;   }   public void setAddress(Address address) {     this.address = address;   }   public double getSalary() {     return salary;   }   public void setSalary(double salary) {     this.salary = salary;   }   public boolean isActive() {     return isActive;   }   public void setActive(boolean isActive) {     this.isActive = isActive;   }   public char getSexy() {     return sexy;   }   public void setSexy(char sexy) {     this.sexy = sexy;   } }

对比XStream和JSON(2)

时间:2011-04-05 BlogJava

package com.ldd600.ws;

public class Address {   private String street;   private String country;   private String city;   private String doorNum; //  private Employee employee;   private String empName;   public String getStreet() {     return street;   }   public void setStreet(String street) {     this.street = street;   }   public String getCountry() {     return country;   }   public void setCountry(String country) {     this.country = country;   }   public String getCity() {     return city;   }   public void setCity(String city) {     this.city = city;   }   public String getDoorNum() {     return doorNum;   }   public void setDoorNum(String doorNum) {     this.doorNum = doorNum;   }   public String getEmpName() {     return empName;   }   public void setEmpName(String empName) {     this.empName = empName;   } //  public Employee getEmployee() { //    return employee; //  } // //  public void setEmployee(Employee employee) { //    this.employee = employee; //  } }

数据格式和长度比较:

方法 长度 格式
Xstream 328 <com.ldd600.ws.Employee>  <name>gavin</name>  <age>0</age>  <address>   <street>zhaojiabang</street>   <country>china</country>   <city>shanghai</city>   <doorNum>789</doorNum>   <empName>gavin</empName>  </address>  <salary>300000.0</salary>  <isActive>true</isActive>  <sexy>m</sexy> </com.ldd600.ws.Employee>
Json lib 170 "789","empName":"gavin","street":& quot;zhaojiabang"},"age":0,"name":"gavin",& quot;salary":300000,"sexy":"m"}
XStream json 183 {"employee": {"name":"gavin","age":0,"address": {"street":"zhaojiabang","country":"china&qu ot;,"city":"shanghai","doorNum":789,"empNam e":"gavin"},"salary":300000,"isActive":true ,"sexy":"m"}}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号