JSONObject按put順序排放與輸出方式
JSONObject按put順序排放與輸出
JSONObject put數(shù)據(jù)之后,排序會(huì)發(fā)生變化
例如
JSONObject object=new JSONObject();
object.put("aaa",111);
object.put("bbb",222);
object.put("ccc",333);
object.put("ddd",444);
輸出結(jié)果可能為
{"aaa":111,"ddd":444,"ccc":333,"bbb":222}
因?yàn)镴sonObject內(nèi)部是用Hashmap來存儲(chǔ)的,所以輸出是按key的排序來的,如果要讓JsonObject按固定順序(put的順序)排列,可以修改JsonObject的定義HashMap改為L(zhǎng)inkedHashMap。
public JSONObject() {
this.map = new LinkedHashMap(); //new HashMap();
}
即定義JsonObject可以這樣:JSONObject jsonObj =new JSONObject(new LinkedHashMap());
JSONObject object=new JSONObject(new LinkedHashMap());
object.put("aaa",111);
object.put("bbb",222);
object.put("ccc",333);
object.put("ddd",444);
再次輸出就會(huì)按順序排了。
不知道大家想要的結(jié)果得到了沒,反正我想要的結(jié)果已經(jīng)得到。不解釋,看下圖--------->

JSONObject.put 的坑
net.sf.json.JSONObject
String timelineContent=一個(gè)json
Json.put("timelineContent",timelineContent);
此時(shí)框架會(huì)自動(dòng)將String類型的timelineContent當(dāng)Json put進(jìn)去。。。
然后因?yàn)榻涌谝骃tring不要JsonObject,就報(bào)
{"errorCode":-1,"errorMessage":"Internal Server Error","exceptionClassName":"org.springframework.http.converter.HttpMessageNotReadableException","exceptionMessage":"JSON parse error: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token\n at [Source: (PushbackInputStream); line: 1, column: 397] (through reference chain: java.util.ArrayList[0]->com.homethy.persistence.domain.LeadTimeline[\"timelineContent\"])","exceptionTime":"2019-06-19 08:59:12"}
沒找指定類型為String不做轉(zhuǎn)換的方法
暫時(shí)解決辦法
Json.put("timelineContent",timelineContent==null?null:" "+timelineContent);
然后接口方就能正確識(shí)別了。。。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java遞歸設(shè)置層級(jí)菜單的實(shí)現(xiàn)
本文主要介紹了java遞歸設(shè)置層級(jí)菜單的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
java必學(xué)必會(huì)之方法的重載(overload)
java必學(xué)必會(huì)之方法的重載,介紹了方法的重載、構(gòu)造方法的重載,想要學(xué)好java方法的重載的朋友一定要好好閱讀這篇文章2015-12-12
Java實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃背包問題
本文主要介紹使用java實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃的背包問題,詳細(xì)使用圖文和多種案例進(jìn)行解析,幫助理解該算法2021-06-06
springboot2.0?@Slf4j?log?彩色日志配置輸出到文件
這篇文章主要介紹了springboot2.0 @Slf4j log日志配置輸出到文件(彩色日志),解決方式是使用了springboot原生自帶的一個(gè)log框架,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-08-08
Spring Boot 配置 Quartz 定時(shí)任務(wù)的方法
這篇文章主要介紹了Spring Boot 配置 Quartz 定時(shí)任務(wù)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
Java8之函數(shù)式接口及常用函數(shù)式接口講解
這篇文章主要介紹了Java8之函數(shù)式接口及常用函數(shù)式接口,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Spring Cloud Gateway + Nacos 實(shí)現(xiàn)動(dòng)態(tài)路由
這篇文章主要介紹了Spring Cloud Gateway + Nacos 實(shí)現(xiàn)動(dòng)態(tài)路由的方法,幫助大家實(shí)現(xiàn)路由信息的自動(dòng)更新,感興趣的朋友可以了解下2020-10-10

