Java JSON、XML文件/字符串与Bean对象互转解析
2014-03-17 16:12
453 查看
前言
在做web或者其他项目中,JSON与XML格式的数据是大家经常会碰见的2种。在与各种平台做数据对接的时候,JSON与XML格式也是基本的数据传递格式,本文主要简单的介绍JSON/XML文件的读写操作,以及与Bean之间的转换。示例代码都是经过Demo测试的,当然也会把代码上传到GitHub.需要的朋友可以看看。
准备工作
我这里对XML与JSON主要依赖以下2个开源库,当然像针对xml和JSON解析的开源库非常的多,下面这2个感觉相对用起来比较简单。需要注意的是如果缺少下面jar文件中的一个,可能就会出现ClassNotFound 异常,如果发现使用的方法在当前库中找不到,则可能是库版本不同造成的,可以去官网查阅。
1.JSON解析库:
Jackson JSON Processor
官网:http://jackson.codehaus.org/
2.XML解析库 :
Simple XML serialization framework
官网:http://simple.sourceforge.net/home.php
lib截图:
JSON 操作详细代码:
1.JSON字符串转换为Bean
2.Bean对象转换为JSON字符串
3.JSON字符串转换为ArrayList
4.ArrayList转换为JSON字符串
其他的一些复杂的Bean转换,就不再多介绍了,主要都是围绕JSONObject,JSONArray,ObjectMapper这几个对象操作的,具体可以看看官方文档。
XML 操作详细代码:
Simple 这个库通过对Bean对象提前通过添加注解的方式,从而简单易懂的方式来达到Bean与XML之间的转换
Bean Example:
1.XML字符串转换为Bean对象
2.Bean对象转换为XML字符串
3.将Bean对象写入XML文件
4.读取XML文件转换为Bean
在做web或者其他项目中,JSON与XML格式的数据是大家经常会碰见的2种。在与各种平台做数据对接的时候,JSON与XML格式也是基本的数据传递格式,本文主要简单的介绍JSON/XML文件的读写操作,以及与Bean之间的转换。示例代码都是经过Demo测试的,当然也会把代码上传到GitHub.需要的朋友可以看看。
准备工作
我这里对XML与JSON主要依赖以下2个开源库,当然像针对xml和JSON解析的开源库非常的多,下面这2个感觉相对用起来比较简单。需要注意的是如果缺少下面jar文件中的一个,可能就会出现ClassNotFound 异常,如果发现使用的方法在当前库中找不到,则可能是库版本不同造成的,可以去官网查阅。
1.JSON解析库:
Jackson JSON Processor
官网:http://jackson.codehaus.org/
2.XML解析库 :
Simple XML serialization framework
官网:http://simple.sourceforge.net/home.php
lib截图:
JSON 操作详细代码:
1.JSON字符串转换为Bean
/** * JSON字符串转换为对象 * @param src JSON字符串 * @param target 目标Bean */ public static <T> T String2Object(String src, Class<T> target) throws JsonParseException, JsonMappingException, IOException { ObjectMapper mapper = new ObjectMapper(); //配置,允许使用单引号字符的JSON mapper.configure(JsonParser.Feature. ALLOW_SINGLE_QUOTES, true); return mapper.readValue( new StringReader(src), target); }
2.Bean对象转换为JSON字符串
/*** * 将对象序列化为JSONObject字符串 * @param object bean对象 * @return String JSONString */ public static String toJSONObjectString(Object object) { JSONObject jsonObject = JSONObject. fromObject(object); return jsonObject.toString(); }
3.JSON字符串转换为ArrayList
/** * 字符串转化为目标List列表 * @param src 源JSON串 * @param target 目标类型 * @return 转化后的列表对象 */ @SuppressWarnings("rawtypes") public static List String2ObjectsList(String src, Class target) throws Exception { ObjectMapper mapper = new ObjectMapper(); mapper.configure(JsonParser.Feature. ALLOW_SINGLE_QUOTES, true); List result = mapper.readValue( new StringReader(src), TypeFactory. collectionType(ArrayList.class, target)); return result; }
4.ArrayList转换为JSON字符串
/** * 将List对象序列化为JSON文本 * @param list * @return List <T> */ public static <T> String toJSONString(List<T> list) { JSONArray jsonArray = JSONArray. fromObject(list); return jsonArray.toString(); }
其他的一些复杂的Bean转换,就不再多介绍了,主要都是围绕JSONObject,JSONArray,ObjectMapper这几个对象操作的,具体可以看看官方文档。
XML 操作详细代码:
Simple 这个库通过对Bean对象提前通过添加注解的方式,从而简单易懂的方式来达到Bean与XML之间的转换
Bean Example:
import org.simpleframework.xml.Attribute; import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; @Root//根节点 public class User { @Attribute//作为属性 private Integer id; @Element//作为元素 private String name; @Element private String email; public User() { super(); } public User(Integer id, String name, String email) { super(); this. id = id; this. name = name; this. email = email; } /** * the below is getter and setter function */ public Integer getId() { return id; } public void setId(Integer id) { this. id = id; } public String getName() { return name; } public void setName(String name) { this. name = name; } public String getEmail() { return email; } public void setEmail(String email) { this. email = email; } }
1.XML字符串转换为Bean对象
//定义序列化对象 Serializer serializer = new Persister(); User user = new User(1001,"test","wewoor@foxmail.com" ); String test = "<user id='1001'><name>test12</name><email>wewoor@foxmail.com</email></user>"; //读取 serializer.read(user, test); System. out.print(user.getId());
2.Bean对象转换为XML字符串
User user = new User(1001,"test","wewoor@foxmail.com" ); //定义序列化对象 Serializer serializer = new Persister(); //输出流 OutputStream out = new ByteArrayOutputStream(); serializer.write(user, out); result = out.toString(); System. out.print(result); out.close();
3.将Bean对象写入XML文件
file = new File("Ziv.xml"); User user = new User(1001,"test","wewoor@foxmail.com" ); //定义序列化对象 Serializer serializer = new Persister(); //将User user 写入ziv.xml serializer.write(user, file);
4.读取XML文件转换为Bean
file = new File( "Ziv.xml"); User user = new User(); //定义序列化对象 Serializer serializer = new Persister(); //读取ziv.xml到User中 serializer.read(user, file);
相关文章推荐
- Java JSON、XML文件/字符串与Bean对象互转解析
- spring mvc底层通过消息转换器 解析json字符串/json对象成JavaBean
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- android/java中把对象、对象bean、Collection以及字符串转换成Json格式数据
- Json—使用gson jar包将json字符串解析为java对象或集合(一)
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- Java生成和解析XML格式文件和字符串的实例代码【dom4j中的SAXReader对象读取并解析xml文件】
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换操作
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- js解析json数组+java对象转json字符串
- JSON解析类库之Fastjson(1) --- Fastjson类库学习, 生成与解析json数据,json字符串与Java对象互转
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- 【问题-java-json】josn的发送与接收(全)解析json对象与字符串在js中的区别,以及后端spring该如何接收?
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- Java解析Json字符串--复杂对象
- objective-c和java下解析对象类型和数组类型JSON字符串
- 将任意Json字符串解析成Java对象
- JSON解析类库之Jackson(1) --- Jackson类库学习, 生成与解析json数据,json字符串与Java对象互转