我已成功在Android中使用fromJson函数来处理许多不同类型的对象,包括String。但是第一次返回的对象是一个URL字符串,这似乎带来了问题。这是我使用的代码:
Gson gson = new Gson();
JSONObject jsonObj = new JSONObject(responseString);
String returnedLink = gson.fromJson(jsonObj.getJSONObject("data").getString("getUrl"), String.class);
如果responseString的格式为
{ “数据”:{ “使用getURL”: “https://domain.com/folder/something”}}
我收到了MalformedJsonException 如果我将responseString设置为
{ “数据”:{ “使用getURL”: “httpsdomain.com.folder.something”}}
returnLink正确设置为“httpsdomain.com.folder.something”
看起来如果反序列化器试图解码url字符串并感到困惑
任何提示,任何人?
答案 0 :(得分:2)
我认为GSON库存在问题。它使用反射来提取数据,因此可能会出现问题。
我建议你不要将GSON用于真正的基本类型,比如字符串或整数。仅将其用于自定义类。在你的情况下,只需做
String returnedLink = jsonObj.getJSONObject("data").getString("getUrl");