2013-07-14 31 views
0

給出一個KeyString中的字符串,我在Java程序中執行以下操作:使用JSON創建一個對象 - 異常收到

ObjectId key = new Gson().fromJson(keyString, ObjectId.class); 

但對於此行中我得到這個異常:

com.google .gson.JsonSyntaxException:java.lang.IllegalStateException: 預計BEGIN_OBJECT但STRING在第1行第3列

這是什麼意思,什麼我能做到解決這個問題嗎?

+0

你可以給完整的字符串「keyString」? – mael

+0

基本上它可以是用戶給出的任何字符串,但爲了討論的緣故,當keyString是「abc」 – DanielY

+2

「abc」時,我得到了這個錯誤?這不是有效的JSON。 – mael

回答

1

fromJson方法正在等待json對象。這意味着格式爲json的字符串,具體而言,它需要以{(而不是[)開頭。

這是有效的:

{ 'id': '1234'} 

這是無效的:

[{ 'id': '1234'}] 

這也是不正確的:

abc 
+0

工作和理解。謝謝 :) – DanielY

2

這意味着你的JSON沒有以「{ 」。在JSON中的對象看起來像這樣:

{ 
    "name" : "john" 
}