Java Json/xml 序列化和反序列化工具:JsonTools 和 simpleframework【附带实例】
2013-05-03 21:11
591 查看
Json序列化:将java bean转换成Json字符串;Json反序列化:将Json字符串转换成java bean。
xml序列化:将java bean转换成xml文件;xml反序列化:将xml文件转换成java bean。
1. xml 序列化反序列化工具:simple framework 功能非常强大,使用起来非常简单。在这里可以下载到它:http://download.csdn.net/detail/ptzrbin/5327967
使用方法:首先根据xml文件建好java bean ,可以是非常复杂的java bean。 对应的xml文件和java bean 见文章尾部。
导入:
[java]
view plaincopyprint?
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
直接使用:
[java]
view plaincopyprint?
File file = new File("c://mystd.xml");
Serializer serializer = new Persister();
//反序列化
Bean rule=serializer.read(Bean.class, file);
//序列化
serializer.write(rule, file);
下面主要介绍json的序列化反序列化 工具
2.Json 工具
Json序列化反序列化工具:JsonTools
JsonTools是一个不错的JSON序列化和反序列化功能包,在这里可以下载到它:http://download.csdn.net/detail/ptzrbin/5327972
使用介绍:
[java]
view plaincopyprint?
//序列化
JSONValue jsonValue = JSONMapper.toJSON( bean);
String jsonStr = jsonValue.render(true); //是否格式化
System.out.println(jsonStr);
//反序列化
JSONParser parser = new JSONParser(new StringReader(jsonStr));
L2Rule bean = (L2Rule) JSONMapper.toJava(parser.nextValue(), L2Rule.class);
原始xml文件:
[html]
view plaincopyprint?
<L2Rule>
<Sheet Type="BS">
<Table>
<Row ItemName="Total assets" USID="USGB123450" Level="0"/>
<Row ItemName="Total current assets" USID="USGB123451" Level="1"/>
<Row ItemName="Cash and cash equivalents" USID="USGB123452" Level="2" />
<Row ItemName="Accounts receivable, net of allowance for bad debts of " USID="USGB123453" Level="2" />
<Row ItemName="Current assets" USID="USGB123454" Level="2" />
</Table>
</Sheet>
</L2Rule>
解析后的json:
{"sheet":[{"tables":{"rows":[{"itemName":"Total assets","level":"0","usid":"USGB123450"},{"itemName":"Total current assets","level":"1","usid":"USGB123451"},{"itemName":"Cash and cash equivalents","level":"2","usid":"USGB123452"},{"itemName":"Accounts
receivable, net of allowance for bad debts of ","level":"2","usid":"USGB123453"},{"itemName":"Current assets","level":"2","usid":"USGB123454"}]},"type":"BS"}]}
加格式:
{
"sheet" :
[
{
"tables" :
{
"rows" :
[
{
"itemName" : "Total assets",
"level" : "0",
"usid" : "USGB123450"
},
{
"itemName" : "Total current assets",
"level" : "1",
"usid" : "USGB123451"
},
{
"itemName" : "Cash and cash equivalents",
"level" : "2",
"usid" : "USGB123452"
},
{
"itemName" : "Accounts receivable, net of allowance for bad debts of ",
"level" : "2",
"usid" : "USGB123453"
},
{
"itemName" : "Current assets",
"level" : "2",
"usid" : "USGB123454"
}
]
},
"type" : "BS"
}
]
}
对应的bean:
L2Rule.java
[java]
view plaincopyprint?
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
@Root(name="L2Rule")
public class L2Rule
{
@ElementList(name="Sheet",required=false,inline=true)
public List<Sheet> sheet = new LinkedList<Sheet>();
public List<Sheet> getSheet()
{
return sheet;
}
public void setSheet(List<Sheet> sheet)
{
this.sheet = sheet;
}
}
Sheet.java
[java]
view plaincopyprint?
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root(name="Sheet")
public class Sheet
{
@Element(name="Table",required=false)
public Table tables = new Table();
@Attribute(name="Type",required=false)
public String type;
public Table getTables()
{
return tables;
}
public void setTables(Table tables)
{
this.tables = tables;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
}
Table.java
[java]
view plaincopyprint?
import java.util.LinkedList;
import java.util.List;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
@Root(name="Table")
public class Table
{
@ElementList(name="Row",required=false,inline=true)
public List<Row> rows = new LinkedList<Row>();
public List<Row> getRows()
{
return rows;
}
public void setRows(List<Row> rows)
{
this.rows = rows;
}
}
Row.java
[java]
view plaincopyprint?
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
@Root(name="Row")
public class Row
{
@Attribute(name="ItemName",required=true)
public String itemName;
@Attribute(name="USID",required=true)
public String usid;
@Attribute(name="Level",required=true)
public String level;
public String getItemName()
{
return itemName;
}
public void setItemName(String itemName)
{
this.itemName = itemName;
}
public String getUsid()
{
return usid;
}
public void setUsid(String usid)
{
this.usid = usid;
}
public String getLevel()
{
return level;
}
public void setLevel(String level)
{
this.level = level;
}
}
xml序列化:将java bean转换成xml文件;xml反序列化:将xml文件转换成java bean。
1. xml 序列化反序列化工具:simple framework 功能非常强大,使用起来非常简单。在这里可以下载到它:http://download.csdn.net/detail/ptzrbin/5327967
使用方法:首先根据xml文件建好java bean ,可以是非常复杂的java bean。 对应的xml文件和java bean 见文章尾部。
导入:
[java]
view plaincopyprint?
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
import org.simpleframework.xml.Serializer; import org.simpleframework.xml.core.Persister;
直接使用:
[java]
view plaincopyprint?
File file = new File("c://mystd.xml");
Serializer serializer = new Persister();
//反序列化
Bean rule=serializer.read(Bean.class, file);
//序列化
serializer.write(rule, file);
File file = new File("c://mystd.xml"); Serializer serializer = new Persister(); //反序列化 Bean rule=serializer.read(Bean.class, file); //序列化 serializer.write(rule, file);
下面主要介绍json的序列化反序列化 工具
2.Json 工具
Json序列化反序列化工具:JsonTools
JsonTools是一个不错的JSON序列化和反序列化功能包,在这里可以下载到它:http://download.csdn.net/detail/ptzrbin/5327972
使用介绍:
[java]
view plaincopyprint?
//序列化
JSONValue jsonValue = JSONMapper.toJSON( bean);
String jsonStr = jsonValue.render(true); //是否格式化
System.out.println(jsonStr);
//反序列化
JSONParser parser = new JSONParser(new StringReader(jsonStr));
L2Rule bean = (L2Rule) JSONMapper.toJava(parser.nextValue(), L2Rule.class);
//序列化 JSONValue jsonValue = JSONMapper.toJSON( bean); String jsonStr = jsonValue.render(true); //是否格式化 System.out.println(jsonStr); //反序列化 JSONParser parser = new JSONParser(new StringReader(jsonStr)); L2Rule bean = (L2Rule) JSONMapper.toJava(parser.nextValue(), L2Rule.class);
原始xml文件:
[html]
view plaincopyprint?
<L2Rule>
<Sheet Type="BS">
<Table>
<Row ItemName="Total assets" USID="USGB123450" Level="0"/>
<Row ItemName="Total current assets" USID="USGB123451" Level="1"/>
<Row ItemName="Cash and cash equivalents" USID="USGB123452" Level="2" />
<Row ItemName="Accounts receivable, net of allowance for bad debts of " USID="USGB123453" Level="2" />
<Row ItemName="Current assets" USID="USGB123454" Level="2" />
</Table>
</Sheet>
</L2Rule>
<L2Rule> <Sheet Type="BS"> <Table> <Row ItemName="Total assets" USID="USGB123450" Level="0"/> <Row ItemName="Total current assets" USID="USGB123451" Level="1"/> <Row ItemName="Cash and cash equivalents" USID="USGB123452" Level="2" /> <Row ItemName="Accounts receivable, net of allowance for bad debts of " USID="USGB123453" Level="2" /> <Row ItemName="Current assets" USID="USGB123454" Level="2" /> </Table> </Sheet> </L2Rule>
解析后的json:
{"sheet":[{"tables":{"rows":[{"itemName":"Total assets","level":"0","usid":"USGB123450"},{"itemName":"Total current assets","level":"1","usid":"USGB123451"},{"itemName":"Cash and cash equivalents","level":"2","usid":"USGB123452"},{"itemName":"Accounts
receivable, net of allowance for bad debts of ","level":"2","usid":"USGB123453"},{"itemName":"Current assets","level":"2","usid":"USGB123454"}]},"type":"BS"}]}
加格式:
{
"sheet" :
[
{
"tables" :
{
"rows" :
[
{
"itemName" : "Total assets",
"level" : "0",
"usid" : "USGB123450"
},
{
"itemName" : "Total current assets",
"level" : "1",
"usid" : "USGB123451"
},
{
"itemName" : "Cash and cash equivalents",
"level" : "2",
"usid" : "USGB123452"
},
{
"itemName" : "Accounts receivable, net of allowance for bad debts of ",
"level" : "2",
"usid" : "USGB123453"
},
{
"itemName" : "Current assets",
"level" : "2",
"usid" : "USGB123454"
}
]
},
"type" : "BS"
}
]
}
对应的bean:
L2Rule.java
[java]
view plaincopyprint?
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
@Root(name="L2Rule")
public class L2Rule
{
@ElementList(name="Sheet",required=false,inline=true)
public List<Sheet> sheet = new LinkedList<Sheet>();
public List<Sheet> getSheet()
{
return sheet;
}
public void setSheet(List<Sheet> sheet)
{
this.sheet = sheet;
}
}
import org.simpleframework.xml.ElementList; import org.simpleframework.xml.Root; @Root(name="L2Rule") public class L2Rule { @ElementList(name="Sheet",required=false,inline=true) public List<Sheet> sheet = new LinkedList<Sheet>(); public List<Sheet> getSheet() { return sheet; } public void setSheet(List<Sheet> sheet) { this.sheet = sheet; } }
Sheet.java
[java]
view plaincopyprint?
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root(name="Sheet")
public class Sheet
{
@Element(name="Table",required=false)
public Table tables = new Table();
@Attribute(name="Type",required=false)
public String type;
public Table getTables()
{
return tables;
}
public void setTables(Table tables)
{
this.tables = tables;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
}
import org.simpleframework.xml.Attribute; import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; @Root(name="Sheet") public class Sheet { @Element(name="Table",required=false) public Table tables = new Table(); @Attribute(name="Type",required=false) public String type; public Table getTables() { return tables; } public void setTables(Table tables) { this.tables = tables; } public String getType() { return type; } public void setType(String type) { this.type = type; } }
Table.java
[java]
view plaincopyprint?
import java.util.LinkedList;
import java.util.List;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
@Root(name="Table")
public class Table
{
@ElementList(name="Row",required=false,inline=true)
public List<Row> rows = new LinkedList<Row>();
public List<Row> getRows()
{
return rows;
}
public void setRows(List<Row> rows)
{
this.rows = rows;
}
}
import java.util.LinkedList; import java.util.List; import org.simpleframework.xml.ElementList; import org.simpleframework.xml.Root; @Root(name="Table") public class Table { @ElementList(name="Row",required=false,inline=true) public List<Row> rows = new LinkedList<Row>(); public List<Row> getRows() { return rows; } public void setRows(List<Row> rows) { this.rows = rows; } }
Row.java
[java]
view plaincopyprint?
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
@Root(name="Row")
public class Row
{
@Attribute(name="ItemName",required=true)
public String itemName;
@Attribute(name="USID",required=true)
public String usid;
@Attribute(name="Level",required=true)
public String level;
public String getItemName()
{
return itemName;
}
public void setItemName(String itemName)
{
this.itemName = itemName;
}
public String getUsid()
{
return usid;
}
public void setUsid(String usid)
{
this.usid = usid;
}
public String getLevel()
{
return level;
}
public void setLevel(String level)
{
this.level = level;
}
}
相关文章推荐
- Java Json/xml 序列化和反序列化工具:JsonTools 和 simpleframework【附带实例】
- Java Json/xml 序列化和反序列化 工具:JsonTools 和 simpleframework 附带实例
- Java Json/xml 序列化和反序列化 工具:JsonTools 和 simpleframework 附带实例
- 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)
- json 与 xml 序列化和反序列化工具
- 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)
- JsonTools(java Json序列化/反序列化)简单使用
- 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)
- [JAVA反序列化DEMO]利用RMI进行反序列化一键启动工具
- json序列化,反序列化;以及java.io.Serializable序列化;即json中说的序列化,和java.io.Serializable序列化,两者的区别
- Java XML解析工具 dom4j介绍及使用实例
- FastJson解析实例--对象序列化和反序列化
- JAVA序列化和反序列化XML
- php json与xml序列化/反序列化
- Java对象的XML序列化和反序列化 - (2)
- Java对象的XML序列化和反序列化 - (5)
- Java XML解析工具 dom4j介绍及使用实例
- 用 XStream 序列化/反序列化 XML 为 Java 对象
- Java对象的XML序列化与反序列化实例解析
- xml与json转换工具java版