java中json包的使用以及字符串,map,list,自定義對象之間的相互轉換


做一個map和字符串的轉換,需要導入這些jar包,這是最基本的一些jar包.

經過多方嘗試得出結論入下:

首先導入基本包:json-lib-2.2.3-jdk15.jar

如果沒有這個jar包,程序是寫不起來的.

現在保證了程序編譯能夠通過,跑一下

出現異常:org/apache/commons/lang/exception/NestableRuntimeException

導入commons-lang-2.3.jar,問題解決.

跑一下:

出現異常:java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher

導入ezmorph-1.0.3.jar,問題解決

跑一下:

出現異常:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

導入commons-logging-1.1.1.jar,問題解決

跑一下:

出現異常:java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap

導入commons-collections-3.2.1.jar,問題解決

跑一下:

出現異常:java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean

導入commons-beanutils-1.7.0.jar,問題解決

跑一下,異常沒了.

下面來看看這些東西是怎么轉換的.

map轉string

Map<String, String> map=new HashMap<String, String>();
map.put("name", "思思博士");
map.put("age","25");
JSONObject jsonObject=JSONObject.fromObject(map); String res
=jsonObject.toString(); System.out.println(res);

結果:{"age":"25","name":"思思博士"}

list轉string

List<String> list=new ArrayList<String>();
list.add("中華");
list.add("人名");
list.add("共和國");
        
JSONArray jsonArray=JSONArray.fromObject(list);
String res=jsonArray.toString();
System.out.println(res);

結果:["中華","人名","共和國"]
string轉map

String res="{\"age\":\"25\",\"name\":\"思思博士\"}";
//或者這樣
//res="{'age':'25','name':'思思博士'}";
JSONObject jsonObject=JSONObject.fromObject(res);
Map<String,String> map = (HashMap<String,String>) JSONObject.toBean(jsonObject, HashMap.class);
System.out.println(map);
System.out.println(map.size());
System.out.println(map.get("name"));
System.out.println(map.getClass().getName());

結果:

{name=思思博士, age=25}
2
思思博士
java.util.HashMap

String 轉成我們的自定義類

UserBean.java

package json;

public class UserBean {
    private String name;
    private String age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    } 
}
String userS = "{'name':'思思博士','age':'25'}";
JSONObject obj = JSONObject.fromObject(userS);
UserBean userBean = (UserBean) JSONObject.toBean(obj, UserBean.class);
System.out.println(userBean.getName());

字符串轉換成數組

String arrayString="['a','b','ccc']";
JSONArray jsonArray=JSONArray.fromObject(arrayString);
Object[] arr=jsonArray.toArray();
System.out.println(arr.length);
System.out.println(arr[2]);

結果:

3
ccc

 json字符串轉list

    public void testParseJsonArray() {
        //json集合
        String jsonString = "[{\"age\":\"13\",\"name\":\"zhangSan\"},{\"age\":\"14\",\"name\":\"liSi\"}]";
        
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        //Java集合
        List<Employee> list = (List<Employee>) jsonArray.toCollection(jsonArray, Employee.class);
        for(Employee employee : list){
            System.out.println(employee);
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM