谷歌的Gson
依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
方法:
/**
* json转成对应类型 [自带静态方法]
*
* 参数1:要转换的是json串
* 参数2:要转换成的类型
* 返回类型:你要转换的类型
*/
public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
Object object = this.fromJson((String)json, (Type)classOfT);
return Primitives.wrap(classOfT).cast(object);
}
// 实例
public void fromJsonTest(){
Gson gson = new Gson();
String jsonString = "{\"name\":\"Eric\",\"age\":18,\"sex\":\"man\"}";
Map jsonMap = gson.fromJson(jsonString,Map.class);
String name2 = jsonMap.get("name").toString();
}
/**
* 对象转换成json串 [封装方法]
*
* 参数1:要转换的对象
* 参数2:是否序列化
* 返回类型:JSON字符串
*/
public static String beanToJson(Object obj,boolean serializableFlag) {
GsonBuilder gsonBuilder = new GsonBuilder();
if (obj == null) {
return null;
}
// 判断用户是否需要序列化
if (serializableFlag){
return gsonBuilder.serializeNulls().create().toJson(obj);
}else{
return gsonBuilder.create().toJson(obj);
}
}
阿里的FastJson
依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
常用方法:
/**
* json串转换为json对象 [自带静态方法]
*
* 参数:String字符串
* 返回类型:JSONObject对象 (类似于Map,数据以键值对的形式存储在对象中)
*/
public static final JSONObject parseObject(String text) {
Object obj = parse(text);
return obj instanceof JSONObject ? (JSONObject)obj : (JSONObject)toJSON(obj);
}
// 实例
public void parseObjectTest(){
String jsonString = "{\"name\":\"Eric\",\"age\":18,\"sex\":\"man\"}";
JSONObject jsonObject = JSON.parseObject(jsonString);
String name = jsonObject.getString("name");
}
/**
* json串转换为json数组 [自带静态方法]
*
* 参数:String字符串
* 返回类型:JSONObject数组
*/
public static final JSONArray parseArray(String text) {
if (text == null) {
return null;
} else {
DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());
JSONLexer lexer = parser.getLexer();
JSONArray array;
if (lexer.token() == 8) {
lexer.nextToken();
array = null;
} else if (lexer.token() == 20) {
array = null;
} else {
array = new JSONArray();
parser.parseArray(array);
handleResovleTask(parser, array);
}
parser.close();
return array;
}
}
// 实例
public void parseArrayTest() {
String jsonList = "[{\"name\":\"Eric1\"},{\"name\":\"Eric2\"}]";
JSONArray jsonArray = JSON.parseArray(jsonList);
if (jsonArray.size()>0){
for (Object jsonObject:jsonArray){
JSONObject jsonObject1 = JSON.parseObject(jsonObject.toString());
String name = jsonObject1.getString("name");
System.out.println(name);
}
}
}
简做总结,各取所需!~