2013-08-29 21 views
0

我有一個像下面這樣的字符串響應,它是一個無效的json,因爲它包含"obj13="。我想將它轉換爲JSONObject(JAVA)並使用它。是否有任何好方法將它轉換爲JSONObject而不使用字符串拆分操作。如何將無效的JSON字符串轉換爲Java中的JSONObject?

obj13={ 
    players: [ 
    { 
     name: "rocky", 
     place: "brazil", 
     age: "21", 
    }, 
    { 
     name: "andy", 
     place: "New Zealand", 
     age: "23", 
    } 
    ] 
} 
+2

分離僞造前綴有什麼問題? –

+0

@HotLicks我可以在javascript中使用eval(String)將提到的字符串轉換爲對象並使用它們。我想也許在JAVA中會有某種東西可以處理這種json響應。 – user818455

+0

您可以隨時編寫自己的JSON解析器,或者獲取一個開源源碼並修改它。除此之外,沒有辦法做你想做的事。 Java不是Javascript。 –

回答

1

這當然是JavaScript而不是JSON。如果可以的話,我會回到服務提供商並要求提供JSON響應。

如果字符串的格式是一致的,你可以只使用:

json=json.substring(json.indexof('=')+1); 

,然後分析結果。請注意,大多數優秀的解析器應該有一個選項,允許沒有引號的關鍵字和允許多餘的逗號(mine does,但不幸的是,它不會創建JSONObject的但是較低的級別 - 它旨在構造數據結構調用者的選擇,這可能是一個JSONObject,如果這是你想要的,但你必須編碼它)。

如果結果可能有也可能沒有分配,您可能想要更有趣一點,並確保'='之前的非空白字符對JS標識符和第一個非空白字符有效是'{'。

+0

某處可能有一個解析器可以確信「=」應該被視爲「:」,所以如果你用'{}'包裝整個事物,它就會解析。但截斷字符串以包裝它一樣簡單。 –

相關問題