net.sf.json.JSONObject 和org.json.JSONObject 的差別

來源:互聯網
上載者:User

標籤:style   ar   os   sp   strong   on   bs   line   size   

net.sf.json.JSONObject 和org.json.JSONObject  的差別。

一、建立json對象

String str = "{\"code\":\"0000\", \"msg\":{\"availableBalance\":31503079.02}}

org.json.JSONObject:

JSONObject json = new JSONObject(str);

net.sf.json.JSONObject:

JSONObject json = JSONObject.fromObject(str);  net.sf.json.jsonobject 沒有 new JSONObject(String)的構造方法

二、解析json

第一種直接用json對象.getXXX();方法擷取

net.sf.json.JSONObject: 沒有嚴格要求擷取欄位的類型跟getXXX()的類型一樣

org.json.JSONObject:擷取的欄位類型必須跟getXXX()的類型一樣

e.g.

JSONObject msgObj = json.getJSONObject("msg");

String availableBalance = msgObj.getString("availableBalance");

如果在org.json.JSONObject 就會報錯,可以msgObj.getDouble("availableBalance");也不會丟精度;而net.sf.json.JSONObject正確,但是精度會丟失,如果String str = "{\"code\":\"0000\", \"msg\":{\"availableBalance\":\"31503079.02\"}}";

就不會丟失精度。

第二中json對象直接轉變實體物件

public class BalanceDto {
private String availableBalance;
public String getAvailableBalance() {
return availableBalance;
}
public void setAvailableBalance(String availableBalance) {
this.availableBalance = availableBalance;
}
public String toString(){

return "availableBalance   "+availableBalance;
}


}
org.json.JSONObject:

BalanceDto alanceDto  = (BalanceDto) JSONObject.stringToValue(msgObj);

這個句話編譯通過,但是運行會報錯,原因是BalanceDto 類中availableBalance 的類型跟json中的“availableBalance ”類型不同意

net.sf.json.JSONObject:

String msg = json.getString("msg");
BalanceDto  alanceDto = (BalanceDto) JSONObject.toBean(
msg, new BalanceDto().getClass());

三、從json中擷取數組

JSONArray subArray = json.getJSONArray("msg");

net.sf.json.JSONObject:

int leng = subArray.size();

 org.json.JSONObject:

int leng = subArray.length();

還有其他的差別 可以比較兩個api文檔,如有錯誤 還請提出,可以發郵件到[email protected]

net.sf.json.JSONObject 和org.json.JSONObject 的差別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.