比方說,有一個JSON字符串,我從服務器得到:「\」 3 \「」(帶引號,即長度== 3這裏)轉換普通字符串JSON和回斯威夫特
在Android中-world,我可以這樣做:
gson.fromJson(json, new TypeToken<String>() {}.getType());
- 它返回「3」(即長度== 1)
在C#-world,可以使用NewtonSoft.Json:
JsonConvert.DeserializeObject<string>(json, settings)
- 它返回「3」(即長度== 1)
和其他方式,我確實有字符串我想序列化爲JSON。 在Android中我會做gson.toJson("\"3\"")
和C# - JsonConvert.SerializeObject("\"3\"")
與JSONSerialization的問題是,它不把普通字符串作爲一個有效的JSON:JSONSerialization.isValidJSONObject("\"3\"") == *false*
什麼將是斯威夫特/ Obj-相當於C世界?
醜陋解決方法我發現(除了只是添加/刪除引號)迄今是包裝串入1項陣列,使JSONSerialization
快樂,然後刪除「[」,「]」,從導致JSON字符串(以及其他方式 - 在反序列化之前添加「[」,「]」),但是對於這個問題真正的解決方案太令人厭惡了。