1. 程式人生 > >json轉換異常Can not deserialize instance of …… out of START_ARRAY token

json轉換異常Can not deserialize instance of …… out of START_ARRAY token

參考文章:https://stackoverflow.com/questions/19333106/jsonmappingexception-out-of-start-array-token

先寫下自己的json格式:

[{
	"tag": "",
	"metal": "W18K",
	"lossRate": 0.1,
	"weightMax": "2.5",
	"weightMin": "1.5"
}, {
	"tag": "",
	"metal": "PT950",
	"lossRate": 0.1,
	"weightMax": "2.5",
	"weightMin": "1.5"
}] 

在使用Jackson轉換這段json的時候報出JsonMappingException: out of START_ARRAY token

,查詢原因,最終把發生錯誤的原因定位到最外層的[ ]上,因為Jackson object mapper在把返回的json片段轉換成物件時,需要的是Object{},而我返回的是Array[{ }]。

為了解決這個問題,在將json轉換成物件時,使用Object[].class替換Object.class,即把json段轉換成這個物件的陣列,而不僅僅是一個物件。