在项目开发的过程中经常会使用一些工具类,但是经常有这样的习惯A项目的工具类,B项目也要用。解决的办法很多,直接拷过去,或者单独搞一个基础工具类项目,或者把工具类打包!!!。于是我就开始收集有一些常用的Javag工具类。
今天先发布两个,一个Json和对象的相互转化,一个XML的。
不多说上代码。
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* XML与对象转化
*
* @author 疾风
* 2016年10月14日
*/
public class BeanXmlUtil {
private static final Logger logger = LoggerFactory.getLogger(BeanXmlUtil.class);
/**
* 将对象解析成XML
*/
public static String format(Object obj, String charset) {
ByteArrayOutputStream baos = null;
try {
JAXBContext ctx = JAXBContext.newInstance(obj.getClass());
baos = new ByteArrayOutputStream();
Marshaller m = ctx.createMarshaller();
m.setProperty(Marshaller.JAXB_ENCODING, charset);
m.marshal(obj, baos);
String result = baos.toString();
if (logger.isDebugEnabled()) {
logger.debug(result);
}
return result;
} catch (JAXBException e) {
throw new IllegalStateException(e);
} finally {
try {
if (baos != null) baos.close();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
}
/**
* 将XML解析成对象
*/
public static Object parse(String xml, Class<?> clazz, String charset) {
InputStreamReader reader = null;
try{
JAXBContext ctx = JAXBContext.newInstance(clazz);
ByteArrayInputStream bis = new ByteArrayInputStream(xml.getBytes(charset));
Unmarshaller um = ctx.createUnmarshaller();
reader = new InputStreamReader(bis, charset);
return um.unmarshal(reader);
}catch (JAXBException e){
throw new IllegalStateException(e);
} catch (UnsupportedEncodingException e) {
throw new IllegalStateException(e);
} finally {
try {
if (reader != null) reader.close();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
}
/**
* 将对象解析成XML
*/
public static String formatUseGBK(Object obj) {
return format(obj, "GBK");
}
/**
* 将对象解析成XML
*/
public static String formatUseUtf8(Object obj){
return format(obj, "UTF-8");
}
/**
* 将XML解析成对象
*/
public static Object parseUTF8(String xml, Class<?> clazz){
return parse(xml, clazz, "UTF-8");
}
/**
* 将XML(GBK)解析成对象
*/
public static Object parseGBK(String xml, Class<?> clazz){
return parse(xml, clazz, "GBK");
}
}
以上是XML格式的转化。
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* json与对象转化
*
* @author 疾风
* 2016年10月15日
*/
public class JsonUtils {
/**
* 将json字符串转换成对象
*/
public static Object parse(String json, Class<?> clazz) {
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.readValue(json, clazz);
} catch (IOException e) {
throw new IllegalArgumentException("无法解析JSON对象", e);
}
}
/**
* 将java对象格式化为字符串
*/
public static String format(Object obj) {
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.writeValueAsString(obj);
} catch (IOException e) {
throw new IllegalArgumentException("格式化对象为JSON格式出错", e);
}
}
/**
* 将json字符串转换成JsonNode对象
*/
public static JsonNode parse(String json) {
try {
ObjectMapper mapper = new ObjectMapper();
return mapper.readTree(json);
} catch (IOException e) {
throw new IllegalArgumentException("格式化对象为JSON格式出错", e);
}
}
/**
* 将json字符串转换成list
*/
public static List<?> parseList(String json, Class<?> clazz) {
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.readValue(json, objectMapper.getTypeFactory().constructParametricType(List.class, clazz));
} catch (IOException e) {
throw new IllegalArgumentException("无法解析JSON对象", e);
}
}
}
以上缺一个和Map格式的转化,本人写了一个结果失败了,就没贴出来,以后要是搞好了再贴上去。
其他的工具类我会慢慢整理出来。
相关推荐
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
本项目提供的"解析xml---xml文件转json对象"是一个Java工具类,用于将XML文件解析成JSON对象,便于处理和操作。要使用这个工具,你需要遵循以下步骤: 1. **导入项目**:首先,下载提供的压缩包并解压。将解压后的...
在Java编程中,数据处理是核心任务之一,而ResultSet、JSON和List是处理数据时常见的三种数据结构。ResultSet是数据库查询结果的载体,JSON是一种轻量级的数据交换格式,而List是Java集合框架中的动态数组。本文将...
本教程将深入讲解如何使用Java读取JSON文件,并将其内容转化为Map以便进行取值操作。 首先,我们需要引入处理JSON的库。Java标准库并不直接支持JSON操作,所以我们通常会使用第三方库,如`org.json`或`...
在标题中提到的“java中json格式转化所需jar包”,可能指的是Jackson库的相关jar包,例如`jackson-databind.jar`,这个包包含了基本的JSON绑定功能,允许我们将Java对象序列化为JSON和反序列化回Java对象。...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端数据传输。在Java编程中,处理JSON数据是常见的任务,...通过熟练掌握这些工具和技巧,可以有效地在Java应用中处理复杂的JSON数据交互。
例如,它可能包含一个名为`JsonToXmlConverter`的类,该类具有将JSON字符串或对象转化为XML字符串的方法。使用这个库,开发者无需手动编写转换代码,只需调用相应的API,即可完成转换任务,大大简化了开发流程。 在...
在Java编程中,XML(可扩展标记语言)和JSON(JavaScript Object Notation)都是常见的数据交换格式,它们各自有各自的优点和应用场景。XML是结构化的数据表示方式,适合复杂的、层次化的信息,而JSON因其简洁明了且...
解析是将XML或JSON字符串转化为Java对象,而序列化则是将Java对象转换为XML或JSON字符串。 在Java中,我们通常使用Jackson库进行XML和JSON的转换。Jackson库提供了`ObjectMapper`类,它可以方便地实现XML和JSON之间...
综上所述,`Json工具类`主要是为了方便开发者在Java项目中进行JSON数据的处理,通过引入Gson或json-lib库,可以轻松地完成对象与JSON字符串之间的相互转化,从而简化数据交换的流程。在具体使用时,根据项目需求和...
总的来说,这个“json解析xml的jar包”是一个便捷的工具,可以帮助Java开发者快速处理XML和JSON之间的转换,提高开发效率,同时保证了转换的正确性和项目的稳定性。在选择和使用这样的库时,应考虑其性能、兼容性、...
JSON-lib提供了一系列的工具类和方法来处理这些情况,如`JSONObject`、`JSONArray`、`JSONFunction`等,它们可以帮助你方便地构造和解析JSON结构。 总之,JSON-lib作为一个强大的Java库,简化了JSON和XML在Java应用...
本主题将深入探讨如何使用Java中的jar包来读取和解析JSON数据,并对比XML与JSON的区别。 首先,我们关注Java解析JSON的常用库之一——Jackson。Jackson是一个高效的JSON处理库,它提供了一系列API,包括`JsonParser...
JSON(JavaScript Object ...总的来说,JSON是数据交换的重要格式,Java中的Gson库为我们提供了便利的转换工具。无论是简单的数据对象还是复杂的数据结构,都能通过Gson轻松地转化为JSON,从而方便在网络间传输或存储。
《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...
总的来说,实体类反射非空赋值以及AjaxJson工具类的应用,是Java后端开发中的常见实践,它涉及到了Java反射API的使用、JSON数据与Java对象的转换,以及如何编写高效的工具类来简化这些操作。理解并熟练掌握这些技能...
总之,XML转换JSON数据类是软件开发中的一种实用工具,它简化了不同数据格式间的交互,提高了开发效率,尤其是在API接口设计、数据传输和存储等方面。对于理解和使用这类工具,需要熟悉XML和JSON的语法以及它们之间...
Jackson提供了`ObjectMapper`类,可以将JSON字符串转化为对应的Java对象。首先定义一个Java类,它的属性与JSON中的键对应,然后使用`ObjectMapper`的`readValue()`方法: ```java public class User { private ...
标题“xmljson生成实体类”指的是一个工具,它可以自动化地将XML或JSON格式的数据转换为Java实体类。这种工具通常会分析XML或JSON结构,然后自动生成对应的Java类,这些类包含了与原始数据相对应的属性和getter/...