JSONObject按put順序排放與輸出方式
JSONObject按put順序排放與輸出
JSONObject put數(shù)據(jù)之后,排序會發(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}
因為JsonObject內(nèi)部是用Hashmap來存儲的,所以輸出是按key的排序來的,如果要讓JsonObject按固定順序(put的順序)排列,可以修改JsonObject的定義HashMap改為LinkedHashMap。
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);
再次輸出就會按順序排了。
不知道大家想要的結(jié)果得到了沒,反正我想要的結(jié)果已經(jīng)得到。不解釋,看下圖--------->

JSONObject.put 的坑
net.sf.json.JSONObject
String timelineContent=一個json
Json.put("timelineContent",timelineContent);
此時框架會自動將String類型的timelineContent當(dāng)Json put進(jìn)去。。。
然后因為接口要求String不要JsonObject,就報
{"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)換的方法
暫時解決辦法
Json.put("timelineContent",timelineContent==null?null:" "+timelineContent);
然后接口方就能正確識別了。。。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決BeanUtils.copyProperties無法成功封裝的問題
這篇文章主要介紹了解決BeanUtils.copyProperties無法成功封裝的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
IDEA?code?template配置和參數(shù)方式
這篇文章主要介紹了IDEA?code?template配置和參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>2024-01-01
MyBatis中的關(guān)聯(lián)關(guān)系配置與多表查詢的操作代碼
本文介紹了在MyBatis中配置和使用一對多和多對多關(guān)系的方法,通過合理的實體類設(shè)計、Mapper接口和XML文件的配置,我們可以方便地進(jìn)行多表查詢,并豐富了應(yīng)用程序的功能和靈活性,需要的朋友可以參考下2023-09-09
Idea?springboot?springCloud熱加載熱調(diào)試兩種常用方式
這篇文章主要介紹了Idea?springboot?springCloud熱加載熱調(diào)試常用的兩種方式,在項目開發(fā)的過程中,需要修改調(diào)試的時候偶每次都需要重啟項目浪費(fèi)時間,下面是我整理的兩種常用的兩種方式,需要的朋友可以參考下2023-04-04
SpringBoot整合Scala構(gòu)建Web服務(wù)的方法
這篇文章主要介紹了SpringBoot整合Scala構(gòu)建Web服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
SpringBoot實現(xiàn)application.yml文件敏感信息加密
本文主要介紹了SpringBoot實現(xiàn)application.yml文件敏感信息加密,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

