使用JAVA将任意封装对象转换成JSON、XML文件与对象之间的相互转化
新学的一些实用小技巧,记录下来,以便忘记
本文共两个使用点
- XML文件与对象之间的相互转化
- 将任意封装对象转换成JSON格式
1、实现将xml格式的文件转换成实体对象。
1.1 读取xml文件,得到String类型的xml字符串
1.2 将xml字符串转换成实体对象
2、将实体对象转换成xml文件
2.1 将实体对象转换成xml格式字符串
2.2 将xml字符串写入xml文件
【使用JAVA将任意封装对象转换成JSON、XML文件与对象之间的相互转化】我们先来看看xml文档和封装对象实体的格式
//xml文件内容格式
1
北京
//城市实体对象,这里只贴封装成员变量public class City {
private int id;
private String cityName;
public City() {
}
//。。。。setter和getter
//省略
}
//代码1实现,从xml转换成对象public City xmlToObject()
{
//创建City实例
City city = new City();
try {
StringBuilder sb = new StringBuilder();
//读取tmp.xml文件,并将其存入StringBuilder中得到xml字符串
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("tmp.xml")));
String src ;
while ((src=https://www.it610.com/article/br.readLine())!=null)
{
sb.append(src);
}
//得到xml字符串
String xml = sb.toString();
//读取xml的字符流
StringReader sr = new StringReader(xml);
//将字符流转换成输入流,方便dom解析xml
InputSource is = new InputSource(sr);
//利用DOM工厂创建DOM解析实例
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
//利用dom实例,解析xml文件
Document document = documentBuilder.parse(is);
//得到对应ID结点列表
NodeList idNode = document.getElementsByTagName("id");
//若id结点列表不为空,则给城市信息赋值
if (idNode.item(0) != null) {
city.setId(Integer.valueOf(idNode.item(0).getTextContent()));
}
NodeList cityNameNode = document.getElementsByTagName("cityName");
if (cityNameNode.item(0) != null) {
city.setCityName(cityNameNode.item(0).getTextContent());
}} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}return city;
}
//代码2实现,将对象转换成xml文件/**
* 转换成xml
*/
public String toXml(City city) {
StringBuffer xml = new StringBuffer();
xml.append("\n");
xml.append("\n");
xml.append("\t" + city.getId() + " \n");
xml.append("\t" + city.getCityName() + " \n");
xml.append(" ");
return xml.toString();
}
2、将任意对象转换成JSON格式
实现功能:将任意封装实体bean转换成json格式。
所需jar包:Fastjson--1.2.32
com.alibaba
fastjson
1.1.39
//实现功能。将对象转换成json字符串@Test
public void toJson()
{
//通过第一步,将xml文件转换,得到城市对象
City city = xmlToObject();
//将对象转换成json格式的字符串
String cityJson = JSON.toJSONString(city);
System.out.println(cityJson);
//输出结果为---{"cityName":"北京","id":1}
}
如果对您有帮助,请帮忙点击一下赞 ^^