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 ...
随机推荐
- 菜鸟程序员之Asp.net MVC Session过期异常的处理
小赵是刚毕业的计算机专业方面的大学生,4年的大学时间里面,他读过了很多编程方面的数据,也动手也了很多代码.现在毕业了,他如愿的加入了T公司,开始了自己的程序员生涯.他信心满满,相信自己4年的学习到的东 ...
- 图解 SQL 各种连接查询之间的区别
转载自:http://blog.csdn.net/xuanjiewu/article/details/50636465 对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有 ...
- 如何通过js实现图片预览功能
一.效果预览 效果图: 二.实现代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- python 标准库和第3方库的介绍
忘了从哪里来的了~~~~ Tkinter———— Python默认的图形界面接口.Tkinter是一个和Tk接口的模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组.T ...
- libc.so.6被删后导致系统无法使用的原因及解决方法
记一次升级glibc库发生的错误 今天给glibc库升级,发生了一件让我吓出一声汗的事情,我把动态库中的libc.so.6给删了,瞬间所有的非系统命令都无法使用,使用就报错 当时就吓尿了,生产环境被我 ...
- sublime学习
1:goto anything 特性 快捷键 ctrl + P @ : # 使用 2:多行游标功能 快捷键 ctrl + D ctrl + K 跳过选择 alt + F3 多选 产生 ...
- 探索 OpenStack 之(15):oslo.messaging 和 Cinder 中 MessageQueue 消息的发送和接收
前言:上一篇文章 只是 RabbitMQ 的科普,本文将仔细分析 Cinder 中 RabbitMQ 的各组件的使用.消息的发送和接收等.由于各流程步骤很多,本文只会使用若干流程图来加以阐述,尽量做到 ...
- uva 816 abbott's revenge ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAncAAAN5CAYAAABqtx2mAAAgAElEQVR4nOy9sY4jydKezVuoayhH0r
- 【C#】SQL数据库助手类2.0(自用)
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...
- PL/0 词法分析器
PL/0 词法分析器 #include<stdio.h> #include <ctype.h> #include <stdlib.h> #include <s ...