2016-04-30 183 views
2

我使用(SendBird),我無法控制,A服務的形式返回數據(字符串):GSON不映射使用Unicode前綴字符串java對象

"{u'some_key': u'some_value', u'some_other_key': u'some_other_value'}" 

一些搜索表明,某些版本的Python會在字符串前添加'u'字符,所以我假設這就是發生了什麼。 然而,當我做一個標準:

Gson gson = new Gson(); 
SomeClass object = gson.fromJson(dataString, SomeClass.class); 

其中 dataString = "{u'some_key': u'some_value', u'some_other_key': u'some_other_value'}"

不正確映射值上我的課(是的,我仔細檢查過了系列化名java對象相匹配屬性)。 Gson不正確地處理'u'前綴還是其他可能發生的事?

+0

JSON格式無效。 –

+0

不確定你的意思?這是一個有效的字符串,可能由運行Python 2.x的服務器返回,根據這個http://stackoverflow.com/questions/2464959/whats-the-u-prefix-in-a-python-string – JJC

+0

檢查你的JSON字符串在這裏.https://jsonformatter.curiousconcept.com/ –

回答

1

就像你說的,因爲標籤中的「u」前綴而不是有效的json。你可以在這裏檢查它:http://jsonlint.com/

因此,Gson無法解析並映射到你的班級。

嘗試刪除標籤之前的「u」,它將起作用。

+0

剛剛澄清,我沒有控制服務,所以這是不可能的。 – JJC