我有JSON这是我从服务器获取:Java的字符串转换为JSON不能做
"[{\"id\":\"1\",\"name\":\"Milos\",\"city\":\"Smederevo\",\"email\":\"milos\",\"password\":\"\"},
{\"id\":\"3\",\"name\":\"Boban\",\"city\":\"Beograd\",\"email\":\"bole\",\"password\":\"\"},
{\"id\":\"4\",\"name\":\"Pele\",\"city\":\"Brazil\",\"email\":\"[email protected]\",\"password\":\"\"},
{\"id\":\"5\",\"name\":\"admin\",\"city\":\"Smederevo\",\"email\":\"admin\",\"password\":\"\"}]"
我使用JSON和发送给我的线程(Android的线程):
try {
// Method from which I am getting Json described above
String s = dm.getAllUsers();
/*JSONParser jp = new JSONParser();
JsonElement jelement = new JsonParser().parse(s);
JsonArray array1 = jelement.getAsJsonArray();*/
JSONArray array = new JSONArray(s);
for (int i = 0; i < array.length(); i++) {
JSONObject menuObject = array.getJSONObject(i);
// doing something with the object
}
} catch (JSONException e) {
e.printStackTrace();
}
我根本无法处理那个Json。 我收到错误“java.lang.String无法转换为JSONArray”。 知道这个问题是由“\”引起的,我只是不知道如何摆脱“\”。
我想:
1) s.replace("\\", "");
2) s.replace("\"", "'");
3) s.replaceAll("\\", "");
4) s.replaceAll("\"", "'");
为了消除 “\”,但代替完全不反应。 我也尝试用“google-gson-2.2.2”库(上面的注释中的代码,在该方法下)解决问题。
有什么建议吗?
我认为你需要修复你的服务器,而不是做你使用的是什么服务器在客户端 – waqaslam 2013-03-18 10:26:05
额外的工作? – waqaslam 2013-03-18 10:29:08
我会做's = s.replaceAll(“\\\”“,”\“”);'(用\替换\“,同时让潜在的其他\不变) – njzk2 2013-03-18 10:29:32