java之資料轉換(Java與json以及map和list的解析)__大資料

來源:互聯網
上載者:User

最近一直在整傳輸資料的事,當然一直在用json格式傳遞,自然就免不了資料之間格式的轉化,包括json轉java的bean對象,封裝解析map、list等。今天就大概記錄一下這些方法,留待以後使用。
一、json
1.將json轉化為java對象
json串為:

String s ={"id":"1","name":"shanxi","librays":[{"libraryid":"1","libraryName":"centralLibray","bookCount":"10021"}]}; 

聲明實體類

public class City {    private int id;    private String name;    private List<Library> librays;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public List<Library> getLibrays() {        return librays;    }    public void setLibrays(List<Library> librays) {        this.librays = librays;    }}
public class Library {    private int libraryid;    private String libraryName;     private String bookCount;    public int getLibraryid() {        return libraryid;    }    public String getBookCount() {        return bookCount;    }    public void setBookCount(String bookCount) {        this.bookCount = bookCount;    }    public void setLibraryid(int libraryid) {        this.libraryid = libraryid;    }    public String getLibraryName() {        return libraryName;    }    public void setLibraryName(String libraryName) {        this.libraryName = libraryName;    }}

實現:這個有兩步,一步是將嵌套的json(即子實體類封裝到classMap中),第二步則是加個json轉化為javabean對象。

Map<String,Class> classMap = new HashMap<String,Class>();        classMap.put("librays", Library.class);        JSONObject obj = new JSONObject().fromObject(s);        City city = JSONObject.toBean(obj,City.class,classMap);

除了json-lib-2.2-jdk15.jar包中的這種方法外,Google的gson也非常靈活的處理這種問題
另外,還有jsonObject的一些基本方法:
如:

//將json數組形式的字串轉化為jsonArray對象JSONArray arr= JSONArray.fromObject(s);//將json形式的字串轉化為json對象JSONObject json = JSONObject.fromObject(s);//將json對象轉化為字串json.toString();/arr.toString//擷取JSONArray的第n個jsonObject對象arr.getJSONObject(n);//擷取JSON對象的某一個值arr.getJSONObject(n).getString(key);

2.遍曆json對象

//遍曆json字串(json對象)JSONObject jsonObject = new JSONObject();jsonObject = jsonObject.fromObject(s);Iterator iterator = jsonObject.keys();while(iterator.hasNext()){    key = (String) iterator.next();    value1 = jsonObject.getString(key);         }

3.遍曆json數組
只不過在遍曆jsonObject外面套一個for迴圈就OK
4.另外,
注意java定義的結構化的對象,如map、json對象或數組等不能令其等於null,令其為null後就不是該結構的對象了,因此不能再進行該結構的一些操作了;
可以為new對象,如new JSONArray(),會把該json數組置為空白。
二、map
1.遍曆map
方法一:

List<HashMap> rlnList = new ArrayList<HashMap>();Map<String,String> map =rlnList.get(i);for(Map.Entry<String, String> entryParam :map.entrySet()){System.out.println("key="+entryParam.getKey()+",value="+entryParam.getValue());}

方法二:
不知道map中索引值對的類型可用這種方法

Map mapc = entry.getValue().get(i);Iterator iter = mapc.entrySet().iterator(); while(iter.hasNext()){    Map.Entry entryc = (Entry) iter.next();    System.out.println("key="+entryc.getKey()+",value="+entryc.getValue());}

2.合并兩個map

for(int i =0;i<map2.size();i++){map1.add(map2.get(i));}

3.定義map

Map map = new HashMap();map.put("key1","value1");map.put("key2","value2");

4.擷取map的值

map.get("key1");

5.判斷map是否為空白
(map.size=0與map.isEmpty()差不多)

if(map!=null && !map.isEmpty()){這個裡面取list中的值}else{做其他處理}

三、list
1.遍曆list

List list = new ArrayList();list.get(i);

2.定義list

list.add(i,"value");

3.修改list

list.set(i,"value");

4.判斷list是否為空白
if(list!=null && !list.isEmpty()){
這個裡面取list中的值
}else{
做其他處理
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.