Json字符串转对象和转List集合操作(json-lib版本)
Json是当前开发用得最多基于JavaScript语言的轻量级的数据交换格式,总结一下常用转换格式的方法,以便日后使用方便
以下为 json-lib包各种 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>xom</groupId>
<artifactId>xom</artifactId>
<version>1.2.5</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>
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.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.xml.XMLSerializer;
/**
* json-lib
*
* @author LMX
*/
public class SfJson
{
/**
* 1. json-lib 的 JSONObject 基础操作
*/
public void showJSONObject()
{
// 创建JSONObject
JSONObject jsonObject = new JSONObject();
jsonObject.put("uName", "lmx");
jsonObject.put("cId", "100");
System.out.println(jsonObject);
// 输出:{"uName":"lmx","cId":"100"}
// 增加属性
jsonObject.element("pwd", "123456");
System.out.println(jsonObject);
// 输出: {"uName":"lmx","cId":"100","pwd":"123456"}
// 取值
System.out.println("cId:" + jsonObject.get("cId"));
// 输出: cId:100
// 判读输出对象的类型
boolean isArray = jsonObject.isArray();
boolean isEmpty = jsonObject.isEmpty();
boolean isNullObject = jsonObject.isNullObject();
System.out.println("是否数组:" + isArray);
// 输出: 是否数组:false
System.out.println("是否空:" + isEmpty);
// 输出: 是否空:false
System.out.println("是否空对象:" + isNullObject);
// 输出: 是否空对象:false
}
/**
* 2. json-lib 的 JSONArray 添加到JSONObject 基础操作
*/
public void showJSONArrayAddJSONObject()
{
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "lmx");
jsonArray.add(1, "jqy");
jsonObject.element("uName", jsonArray);
System.out.println(jsonObject);
// 输出: {"uName":["lmx","jqy"]}
}
/**
* 3. json-lib 的 JSONArray 基础操作
*
* @param jsonStr
*/
public void showJSONArray()
{
// 创建JSONArray
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "lmx");
jsonArray.add(1, "jqy");
jsonArray.element("llh");
System.out.println(jsonArray);
// 输出: ["lmx","jqy","llh"]
// 根据下标返回,打印:2
System.out.println(jsonArray.get(0));
// 输出: lmx
// set修改
jsonArray.set(0, "aa");
System.out.println(jsonArray);
// 输出: ["aa","jqy","llh"]
// 添加最前
jsonArray.add(0, "bb");
// 添加最后
jsonArray.add("cc");
System.out.println(jsonArray);
// 输出: ["bb","aa","jqy","llh","cc"]
// jsonArray.clear(); 清空
}
/**
* 4. json-lib 把JSONObject放入到JSONArray
*/
public void showJSONObjectAddJSONArray()
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("uName", "lmx");
jsonObject.put("pwd", "123456");
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("uName", "lmx");
jsonObject2.put("pwd", "123456");
JSONArray jsonArray = new JSONArray();
jsonArray.add(jsonObject);
jsonArray.add(jsonObject2);
System.out.println(jsonArray);
// 输出:[{"uName":"lmx","pwd":"123456"},{"uName":"lmx","pwd":"123456"}]
for (int i = 0; i < jsonArray.size(); i++ )
{
System.out.println(jsonArray.get(i));
// 输出: 1. {"uName":"lmx","pwd":"123456"} 2. {"uName":"lmx","pwd":"123456"}
}
}
/**
* 5.json-lib 把 JavaBean转换成json字符串
*/
public void getJSONObjectToBean()
{
User user = new User();
user.setcId("100");
user.setuName("lmx");
user.setPwd("123456");
JSONObject jsonObject = JSONObject.fromObject(user);
System.out.println(jsonObject);
// 输出: {"uName":"lmx","pwd":"123456","cId":"100"}
}
/**
* 6.json-lib 把 json字符串转换成JavaBean
*/
public void getBeanToJSONObject()
{
String strJon = "{\"uName\":\"lmx\",\"pwd\":\"123456\",\"cId\":\"100\"}";
JSONObject jsonObject = JSONObject.fromObject(strJon);
User user = (User)JSONObject.toBean(jsonObject, User.class);
System.out.println(user);
// 输出: {"uName":"lmx","pwd":"123456","cId":"100"}
}
/**
* 7. json-lib 把 List转换成json字符串
*/
public void getListToJSONArray()
{
// List转json字符串
List<User> list = new ArrayList<User>();
list.add(new User("100", "lmx", "123456"));
list.add(new User("200", "jqy", "123"));
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
// 输出: [{"uName":"lmx","pwd":"123456","cId":"100"},{"uName":"jqy","pwd":"123","cId":"200"}]
}
/**
* 8. json-lib 把 json字符串 转换成 List
*/
public void getJSONObjectToList()
{
List<User> userList = new ArrayList<User>();
String strJon = "[{\"cId\":\"100\",\"uName\":\"lmx\",\"pwd\":\"123\"},{\"cId\":\"200\",\"uName\":\"jqy\",\"pwd\":\"123456\"}]";
JSONArray jsonArray = JSONArray.fromObject(strJon);
for (int i = 0; i < jsonArray.size(); i++ )
{
JSONObject jsonObject = jsonArray.getJSONObject(i);
User user = (User)JSONObject.toBean(jsonObject, User.class);
userList.add(user);
}
for (User user : userList)
{
System.out.println(user.getuName());
// 输出: lmx jqy
}
}
/**
* 9. json-lib 把 Map 转换成 json字符串
*/
public void getMapToJson()
{
Map<String, User> map = new HashMap<String, User>();
map.put("1", new User("100", "lmx", "123456"));
map.put("2", new User("200", "jqy", "123"));
JSONObject jsonMap = JSONObject.fromObject(map);
System.out.println(jsonMap);
// 输出:
// {"1":{"uName":"lmx","pwd":"123456","cId":"100"},"2":{"uName":"jqy","pwd":"123","cId":"200"}}
}
/**
* 10. json-lib 把 json字符串转换成Map
*/
public void getJsonToMap()
{
// json字符串转Map
String strJon = "{\"1\":{\"cId\":\"100\",\"uName\":\"lmx\"},\"2\":{\"cId\":\"200\",\"uName\":\"jqy\"}}";
Map map = (Map)JSONObject.fromObject(strJon);
Set set = map.keySet();
Iterator ite = set.iterator();
while (ite.hasNext())
{
String key = (String)ite.next();
JSONObject jsonObject = JSONObject.fromObject(map.get(key));
User user = (User)JSONObject.toBean(jsonObject, User.class);
System.out.println(key + " " + JSONObject.fromObject(user).toString());
// 输出: 1 {"uName":"lmx","pwd":"","cId":"100"} 2{"uName":"jqy","pwd":"","cId":"200"}
}
}
/**
* 11. json-lib 把 JSONArray转换成 List
*/
public void getJSONArrayToList()
{
// List转型JSONArray
List<User> list = new ArrayList<User>();
list.add(new User("100", "lmx", "123456"));
list.add(new User("200", "jqy", "123"));
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
// 输出:[{"uName":"lmx","pwd":"123456","cId":"100"},{"uName":"jqy","pwd":"123","cId":"200"}]
// JSONArray转型List
List<User> lists = JSONArray.toList(jsonArray, new User(), new JsonConfig());
Iterator<User> iur = lists.iterator();
while (iur.hasNext())
{
User user = iur.next();
System.out.println(JSONObject.fromObject(user).toString());
// 输出:{"uName":"lmx","pwd":"123456","cId":"100"}
// {"uName":"jqy","pwd":"123","cId":"200"}
}
}
/**
* 12. json-lib 把JSONArray转换成 数组
*/
public void getJSONArrayToArray()
{
boolean[] boolArray = new boolean[] {true, false, true};
JSONArray jsonArray = JSONArray.fromObject(boolArray);
Object obj[] = jsonArray.toArray();
for (Object o : obj)
{
System.out.println(o + " ");
// 输出: true false true
}
}
/**
* 13. json-lib 把数组转换成 JSONArray
*/
public void getArrayToJSONArray()
{
boolean[] boolArray = new boolean[] {true, false, true};
JSONArray jsonArray = JSONArray.fromObject(boolArray);
System.out.println(jsonArray.toString());
// 输出: [true,false,true]
}
/**
* 14. json-lib 把XML转换成 JSON
*/
public void getXmlToJSON()
{
// XML转JSON
String xml = "<root>" + "<uName>lmx</uName>" + "<pwd>123456</pwd>" + "<birthday>"
+ "<year>1990</year>" + "<month>10</month>" + "<day>22</day>" + "</birthday>"
+ "</root>";
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xml);
System.out.println(json.toString());
// 输出:{"uName":"lmx","pwd":"123456","birthday":{"year":"1990","month":"10","day":"22"}}
}
/**
* 14. json-lib 把JSON转换成 XML
*/
public void getJSONToXml()
{
String jsondata = "{\"uName\":\"lmx\",\"pwd\":\"123456\",\"birthday\":{\"year\":\"1990\",\"month\":\"10\",\"day\":\"22\"}}";
JSONObject jsonObject = JSONObject.fromObject(jsondata);
String xmlstr = new XMLSerializer().write(jsonObject);
System.out.println(xmlstr);
// 输出: <?xml version="1.0" encoding="UTF-8"?><o><birthday class="object"><day type="string">22</day><month type="string">10</month><year type="string">1990</year></birthday><pwd type="string">123456</pwd><uName type="string">lmx</uName></o>
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
SfJson sf = new SfJson();
// 1
System.out.println("showJsonObject:");
sf.showJSONObject();
// 2
System.out.println("showJSONArrayAddJSONObject:");
sf.showJSONArrayAddJSONObject();
// 3
System.out.println("showJSONArray:");
sf.showJSONArray();
// 4
System.out.println("showJSONObjectAddJSONArray:");
sf.showJSONObjectAddJSONArray();
// 5
System.out.println("getJSONObjectToBean:");
sf.getJSONObjectToBean();
// 6
System.out.println("getBeanToJSONObject:");
sf.getJSONObjectToBean();
// 7
System.out.println("getListToJSONArray:");
sf.getListToJSONArray();
// 8
System.out.println("getJSONObjectToList:");
sf.getJSONObjectToList();
// 9
System.out.println("getMapToJson:");
sf.getMapToJson();
// 10
System.out.println("getJsonToMap:");
sf.getJsonToMap();
// 11
System.out.println("getJSONArrayToList:");
sf.getJSONArrayToList();
// 12
System.out.println("getJSONArrayToArray:");
sf.getJSONArrayToArray();
// 13
System.out.println("getArrayToJSONArray:");
sf.getArrayToJSONArray();
// 14
System.out.println("getXmlToJSON:");
sf.getXmlToJSON();
// 15
System.out.println("getJSONToXml:");
sf.getJSONToXml();
}
}
Json字符串转对象和转List集合操作(alibabab版本)
https://blog.csdn.net/liangmaoxuan/article/details/80640259总结不好多多担待,文章只单纯个人总结,如不好勿喷,技术有限,有错漏麻烦指正提出。本人QQ:373965070