0
我正在使用com.google.gson
和註釋@SerializedName
。 使用@SerialiazedName("@foo")
時,由於'@'
(See source code),它拋出IllegalArgumentException。Google Gson在屬性名稱中不允許出現'@'
當使用JSONLint和{ "@foo": 1 }
時,結果是有效的JSON對象。
爲什麼Google Gson在這種情況下拋出異常?對於JSON屬性,'@'
是無效的字符嗎?
答案在您發佈的代碼中。使用的正則表達式不允許名稱以'@'開頭。 – hfontanez 2014-12-01 23:03:37
JSON對象允許任何JSON字符串作爲成員名稱,因此每個有效的JSON字符串都是允許的,這意味着任何Java字符串 - 即使是空字符串。我不明白爲什麼Gson試圖在這裏驗證它們。 – fge 2014-12-01 23:07:05