FastJson處理數據出現錯誤 com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1


用ajax發送JSON數據,其中數據類型為List,出現com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 1這種類型的錯誤

一般是數據格式問題

首先我們必須清楚JSON的數據格式

JSON中,對象用{  }包圍,映射用“:”表示,集合或數組用[  ]包圍

比如一個Java類的JSON格式為

 

{        
名稱1:值1,
名稱2:值2 
}        

一個List的JSON格式為

[                  
{名稱1:值,名稱2:值2},
{名稱1:值,名稱2:值2} 
]                  

在這里需要注意一個問題,在Map中使用“=”連接鍵值,而不是“:”,跟List是不一樣的

而且,必須在我們需要轉化的Java類中重寫toString方法,否則會自動調用默認的toString()方法,只能獲取到這樣一個字符串:“類名+@+hashCode”,而無法拿到內部數據

用eclipse自動生成的的toString()方法也是不符合JSON的格式要求的

自動生成的格式

public String toString() {                                                                                               
   return "Test [itemlist=" + itemlist + ", address=" + address + ", total=" + total + "]";
} 

 

必須修改為該格式

public String toString() {                                
  return "{\"itemlist\":\"" + itemlist + "\", \"address\":\"" + address + "\", \"total\":\"" + total + "\"}";
 } 

我們就能在后台用 JSON.parseArray 方法獲取到我們需要的List了

 
        


 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM