Json字符串轉對象和轉List集合操作(alibabab版本)
Json是當前開發用得最多基於JavaScript語言的輕量級的數據交換格式,總結一下常用轉換格式的方法,以便日後使用方便
以下爲 alibabab 包各種 JSON 轉換的方法總結:
1. 所需引入的第三方包:
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk13</classifier>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
2. 對象User類
package com.lmx.demo;
public class User
{
private String cId;
private String uName;
private String pwd;
public User(){
}
public User(String cId, String uName, String pwd){
this.cId = cId;
this.uName = uName;
this.pwd = pwd;
}
public String getcId()
{
return cId;
}
public void setcId(String cId)
{
this.cId = cId;
}
public String getuName()
{
return uName;
}
public void setuName(String uName)
{
this.uName = uName;
}
public String getPwd()
{
return pwd;
}
public void setPwd(String pwd)
{
this.pwd = pwd;
}
}
3. Json各類轉換
package com.lmx.demo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
* alibaba 第三方包 Json 轉換用法
* @author LMX
*
*/
public class Main
{
/**
* 1.通過JSON.parse把json轉換爲Map
*
* @param jsonStr
*/
public void getJsonToMap()
{
String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
Map maps = (Map)JSON.parse(jsonStr);
for (Object map : maps.entrySet())
{
System.out.println(
"key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
}
/*
輸出: key爲:address, 值爲:sz
key爲:Id, 值爲:1
key爲:userName, 值爲:lmx
key爲:pwd, 值爲:123456
*/
}
/**
* 2.通過JSON.parseObject把json轉換爲Map
*
* @param jsonStr
* @return
*/
public void getJsonToMapByClass()
{
String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
Map mapTypes = JSON.parseObject(jsonStr, Map.class);
for (Object obj : mapTypes.keySet())
{
System.out.println("key爲:" + obj + ", 值爲:" + mapTypes.get(obj));
}
/* 輸出: key爲:address, 值爲:sz
key爲:Id, 值爲:1
key爲:userName, 值爲:lmx
key爲:pwd, 值爲:123456
*/
}
/**
* 3.通過JSON.parseObject把json轉換爲Object
*
* @param jsonStr
* @return
*/
public void getJsonToObject()
{
String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
Map mapTypes = JSON.parseObject(jsonStr);
for (Object obj : mapTypes.keySet())
{
System.out.println("key爲:" + obj + ", 值爲:" + mapTypes.get(obj));
}
/* 輸出: key爲:address, 值爲:sz
key爲:Id, 值爲:1
key爲:userName, 值爲:lmx
key爲:pwd, 值爲:123456
*/
}
/**
* 4.通過JSONObject.parse把json轉換爲Map
*
* @param jsonStr
*/
public void getJSONObjectToMap()
{
String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
Map json = (Map)JSONObject.parse(jsonStr);
for (Object map : json.entrySet())
{
System.out.println(
"key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
}
/* 輸出: key爲:address, 值爲:sz
key爲:Id, 值爲:1
key爲:userName, 值爲:lmx
key爲:pwd, 值爲:123456
*/
}
/**
* 5.通過JSONObject.parseObject把json轉換爲JSONObject,並遍歷單Object輸出
*
* @param jsonStr
*/
public void getJSONObjectToObject()
{
String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
for (Object map : jsonObject.entrySet())
{
System.out.println(
"key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
}
/* 輸出: key爲:address, 值爲:sz
key爲:Id, 值爲:1
key爲:userName, 值爲:lmx
key爲:pwd, 值爲:123456
*/
}
/**
* 6.通過JSONObject.parseObject把json轉換爲Map
*
* @param jsonStr
*/
public void getJSONObjectToMapClass()
{
String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
Map mapObj = JSONObject.parseObject(jsonStr, Map.class);
for (Object map : mapObj.entrySet())
{
System.out.println(
"key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
}
/* 輸出: key爲:address, 值爲:sz
key爲:Id, 值爲:1
key爲:userName, 值爲:lmx
key爲:pwd, 值爲:123456
*/
}
////////////// List集合和JSON相互轉換工具類//////////////////////////
/**
* 7.通過JSON.toJSONString把List<T>轉換爲json
*
* @param obj
* @return
*/
public static <T> String getListToJson(List<T> obj)
{
String jsonStr = JSON.toJSONString(obj);
return jsonStr;
// String輸出: ["aa","bb","cc"]
// userModel輸出: [{"cId":"100","pwd":"123456","uName":"lmx"},{"cId":"200","pwd":"123456","uName":"jqy"}]
}
/**
* 8.通過JSONArray.parseArray把json轉換爲List<T>
*
* @param jsonStr
* @param model
* @return
*/
public static <T> List<T> getStringToList(String jsonStr, Class<T> model)
{
List<T> object = (List<T>)JSONArray.parseArray(jsonStr, model);
return object;
// String輸出: "aa","bb","cc"
// userModel輸出: lmx,jqy
}
////////////// 對象和JSON相互轉換工具類/////////////////////////
/**
* 9.通過JSONObject.toJSONString把對象轉換爲String
* @param model
* @return
*/
public static <T> String getObjectToJson(T model)
{
String StrObject = JSONObject.toJSONString(model);
return StrObject;
// User輸出: {"cId":"100","pwd":"123456","uName":"lmx"}
// Map輸出: {"uName":"llmmxx","pwd":"123","cId":"300"}
}
/**
* 10.通過JSONObject.parseObject把String轉換爲對象
* @param jsonStr
* @param model
* @return
*/
public static <T> T getStringToObject(String jsonStr, Class<T> model)
{
return JSONObject.parseObject(jsonStr, model);
// User輸出: {"cId":"100","pwd":"123456","uName":"lmx"}
// Map輸出: {"uName":"llmmxx","pwd":"123","cId":"300"}
}
/**
* 11 .通過fluentPut添加一個值
* fluentPutAll fluentPut
* @param jsonStr
* @return
*/
public void setAddJSONObject()
{
String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
jsonObject.fluentPut("lll", "111");
Map<String, String> der = new HashMap<String, String>();
der.put("der1", "der1");
der.put("der2", "der2");
der.put("der3", "der3");
jsonObject.fluentPutAll(der);
//jsonObject.fluentClear();清除
for (Object map : jsonObject.entrySet())
{
System.out.println(
"key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
}
/* 輸出: key爲:uName, 值爲:lmx
key爲:pwd, 值爲:123456
key爲:der3, 值爲:der3
key爲:lll, 值爲:111
key爲:der1, 值爲:der1
key爲:cId, 值爲:100
key爲:der2, 值爲:der2
*/
}
@SuppressWarnings("static-access")
public static void main(String[] args)
{
// TODO Auto-generated method stub
Main m = new Main();
// 1
System.out.println("getJsonToMap:");
m.getJsonToMap();
// 2
System.out.println("getJsonToMapByClass:");
m.getJsonToMapByClass();
// 3
System.out.println("getJsonToObject:");
m.getJsonToObject();
// 4
System.out.println("getJSONObjectToMap:");
m.getJSONObjectToMap();
// 5
System.out.println("getJSONObjectToObject:");
m.getJSONObjectToObject();
// 6
System.out.println("getJSONObjectToMapClass:");
m.getJSONObjectToMapClass();
// 7.1 String
System.out.println("getListToJson by String:");
List<String> StrModel = new ArrayList<String>();
StrModel.add("aa");
StrModel.add("bb");
StrModel.add("cc");
String strString = m.getListToJson(StrModel);
System.out.println(strString);
// 7.2 User
System.out.println("getListToJson by userModel:");
List<User> userModel = new ArrayList<User>();
User u = new User();
u.setcId("100");
u.setuName("lmx");
u.setPwd("123456");
User u1 = new User();
u1.setcId("200");
u1.setuName("jqy");
u1.setPwd("123456");
userModel.add(u);
userModel.add(u1);
String strUser = m.getListToJson(userModel);
System.out.println(strUser);
// 8.1 String
System.out.println("getJsonToList by String:");
List<String> strLists = m.getStringToList(strString, String.class);
for (String strList : strLists)
{
System.out.println(strList);
}
//8.2 User對象
System.out.println("getJsonToList by User:");
List<User> userLists = m.getStringToList(strUser,User.class);
for (User userList : userLists)
{
System.out.println(userList.getuName());
}
//9.1 User對象
System.out.println("getObjectToJson by User:");
String strUsers = m.getObjectToJson(u);
System.out.println(strUsers);
//9.2 Map
System.out.println("getObjectToJson by Map:");
Map<String , String> userMap = new HashMap<String, String>();
userMap.put("cId", "300");
userMap.put("uName", "llmmxx");
userMap.put("pwd", "123");
String strUsersMap = m.getObjectToJson(userMap);
System.out.println(strUsersMap);
/* //9.3 User對象
System.out.println("getObjectToJson by User:");
String strObjectUser = m.getObjectToJson(strUsers);
System.out.println(strObjectUser);
//9.4 Map對象
System.out.println("getObjectToJson by Map:");
String strObjectMap = m.getObjectToJson(strUsersMap);
System.out.println(strObjectMap);*/
//10.1 User對象
System.out.println("getStringToObject by User:");
User stringObjectUser = m.getStringToObject(strUsers,User.class);
System.out.println(JSONObject.toJSONString(stringObjectUser).toString());
//10.2 Map對象
System.out.println("getStringToObject by Map:");
Map stringObjectMap = m.getStringToObject(strUsersMap,Map.class);
System.out.println(JSONObject.toJSONString(stringObjectMap).toString());
//11
System.out.println("setAddJSONObject by User:");
m.setAddJSONObject();
}
}
Json字符串轉對象和轉List集合操作(json-lib版本)
https://blog.csdn.net/liangmaoxuan/article/details/80642880總結不好多多擔待,文章只單純個人總結,如不好勿噴,技術有限,有錯漏麻煩指正提出。本人QQ:373965070