Java JSON、XML文件/字符串与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);
}
/***
* 将对象序列化为JSONObject字符串
* @param object bean对象
* @return String JSONString
*/
public static String toJSONObjectString(Object object) {
JSONObject jsonObject = JSONObject. fromObject(object);
return jsonObject.toString();
}
/**
* 字符串转化为目标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;
}
/**
* 将List对象序列化为JSON文本
* @param list
* @return List <T>
*/
public static <T> String toJSONString(List<T> list) { JSONArray jsonArray = JSONArray. fromObject(list);
return jsonArray.toString();
}
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;
}
}
//定义序列化对象
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());
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();
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);
file = new File( "Ziv.xml");
User user = new User();
//定义序列化对象
Serializer serializer = new Persister();
//读取ziv.xml到User中
serializer.read(user, file);
Java JSON、XML文件/字符串与Bean对象互转解析的更多相关文章
- Java—JSON串转换成实体Bean对象模板
介绍 模板需求说明 开发中经常遇到前端传递过来的JSON串的转换,后端需要解析成对象,有解析成List的,也有解析成Map的. 依赖 <dependency> <groupId& ...
- java读取xml文件并转换成对象,并进行修改
1.首先要写工具类,处理读取和写入xml文件使用的工具.XMLUtil.javaimport java.io.FileInputStream; import java.io.FileWriter; i ...
- Java Json格式的字符串转变对象
Java Json格式的字符串转变对象: 方法还是比较多的: 学习:https://my.oschina.net/heweipo/blog/386808 其中的jsonlib说明:http://www ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- 用java操作XML文件(DOM解析方式)
XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...
- java对xml文件做增删改查------摘录
java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...
- Java操作xml文件
Bbsxml.java public class Bbsxml { private String imgsrc; private String title; private String url; p ...
- java用Annotation注入到成员Bean对象
java用Annotation注入到成员Bean对象 在使用一些java框架的时候,经常看到一些注解,而且使用注解之后就可以免去一些xml的繁琐配置,本文记录如何通过注解获得成员Bean对象. 一.首 ...
- 通过Java读取xml文件内容
读取XML中的内容就需要对XML进行解析,目前对XML进行解析的方法分为四种: 下面解析的方法是DOM4J,需要下载jar包dom4j:https://dom4j.github.io/ package ...
随机推荐
- HTTP/HTTPs要点
Http(超文本传输协议)是一个属于应用层的面向对象的协议. HTTP结构 HTTP请求: 请求行:Method-Request URI HTTP-Version(CRLF),eg:GET /form ...
- keepalived+LVS搭建高可用负载均衡系统
相关架构设置: 1)vip : 192.168.137.6 2)DS master ip : 192.168.137.8 3)DS backup ip : 192.168.137.9 4)RS 1 i ...
- 进制,原码VS补码
进制 十,八,十六进制=>二进制 十进制=>二进制:辗转相除取余,10除2商5余0,5除2商2余1,2除2商1余0,1除2商0余1,So,10d=1010b 八进制=>二进制:每1位 ...
- UWP 矢量字体图标(iconfont)使用
本文使用 阿里巴巴开源字体: 选择矢量字体图标: 查看或编辑 Unicode编码 或字体名称 下载到本地,添加到uwp项目 代码中写法 Text:Unicode编码 FontFamily:文件路径#字 ...
- common-pool2对象池(连接池)的介绍及使用
我们在服务器开发的过程中,往往会有一些对象,它的创建和初始化需要的时间比较长,比如数据库连接,网络IO,大数据对象等.在大量使用这些对象时,如果不采用一些技术优化,就会造成一些不可忽略的性能影响.一种 ...
- uva 572 oil deposits——yhx
Oil Deposits The GeoSurvComp geologic survey company is responsible for detecting underground oil d ...
- 《MapReduce: Simplified Data Processing on Large Cluster 》翻译
Abstract MapReduce是一种编程模型和一种用来处理和产生大数据集的相关实现.用户定义map函数来处理key/value键值对来产生一系列的中间的key/value键值对.还要定义一个re ...
- PL/0 词法分析器
PL/0 词法分析器 #include<stdio.h> #include <ctype.h> #include <stdlib.h> #include <s ...
- jquery中attr和prop的区别(转)
在网络上看到这样一篇关于jquery中attr和prop的区别文章,觉得不错,所以转载了. 在jQuery 1.6中,.attr()方法查询那些没有设置的属性,则会返回一个undefined.如果你要 ...
- UVA 11235 Frequent Values ---RMQ
大白书上的例题,具体讲解见大白书,最好用用一个Log数组直接求k,这样就是纯O(1)了 #include <iostream> #include <cstdio> #inclu ...