string 轉 java對象、轉map的方式


1、使用fastJson 將String轉 map:


String out;

        Object succesResponse = JSON.parse(out);    //先轉換成Object

        Map map = (Map)succesResponse;         //Object強轉換爲Map


2、String 轉 java 對象

fastjson 應用 string字符串轉換成java對象或者對象數組

代碼如下

 

import java.util.ArrayList;
import java.util.Arrays;  
import java.util.List;  
  
import com.alibaba.fastjson.JSON;  
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;  
  
  
public class TestFastJson {    
    public static void main(String[] args) {    
        //  轉換成對象    
        String jsonstring = "{\"a\":51,\"b\":0}";    
        Usa u1 = JSON.parseObject(jsonstring, new TypeReference<Usa>(){});  
        Usa u2 = JSON.parseObject(jsonstring,Usa.class);  
        // 轉換成對象數組     
        String jsonstring2 = "[{\"a\":51,\"b\":0}]";    
        Usa[] usa2 = JSON.parseObject(jsonstring2, new TypeReference<Usa[]>(){});    
        List list = Arrays.asList(usa2); 
        // 轉換成ArrayList
        ArrayList<Usa> list2 = JSON.parseObject(jsonstring2, new TypeReference<ArrayList<Usa>>(){}); 
        
        // 轉換成ArrayList(默認)    list3  與 list4  效果相同
        ArrayList<JSONObject> list3 = JSON.parseObject(jsonstring2, new ArrayList<Usa>().getClass()); 
        ArrayList<JSONObject> list4 = JSON.parseObject(jsonstring2, ArrayList.class); 
        for (int i = 0; i < list4.size(); i++) { //  推薦用這個
        	JSONObject io = list4.get(i);
        	System.out.println(io.get("a") + "======adn====="+io.get("b"));
		}
    }    
}    
class Usa {
	private int count = 1888;
	private String base = "project";
	private Long a;    
    public Long getA() {    
        return a;    
    }    
    public void setA(Long a) {    
        this.a = a;    
    }    
    private String b;    
    public String getB() {    
        return b;    
    }    
    public void setB(String b) {    
        this.b = b;    
    }    
}    
 
 

json字符串 直接轉換成List

 

 ArrayList<Usa> usa2 = JSON.parseObject(jsonstring2, new TypeReference<ArrayList<Usa>>(){}); 

 或者轉換成對象數組

   Usa[] usa2 = JSON.parseObject(jsonstring2, new TypeReference<Usa[]>(){});  

 

  對象數組轉List  

   List list = Arrays.asList(usa2);    

 

我們使用new TypeReference的時候會生成多個class文件 裏面有多少個new TypeReference 就會新增了class

即使我們在for循環裏(0-N)寫new TypeReference 這段代碼也是多生成一個class文件,fastjson是看我們寫了多少new TypeReference,而不是調用了多少次new TypeReference。推薦用ArrayList.class 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章