【问题标题】:Remove back slash from Json String in android从android中的Json String中删除反斜杠
【发布时间】:2016-12-05 20:05:12
【问题描述】:

我需要一些关于从 Json 字符串中删除反斜杠的帮助。

这是我从服务器端获取的响应。

"response":"{\"time_zone\":\"\",\"session_token\":\"abcdefgHijklomopqrstuvwxyz\",\"user_login\":\"abc\",\"user_profile_img\":\"http://jhjhjhj.org/system/photos/62/medium/images.jpg?1462446436\",\"success\":\"0\",\"org_admin\":\"\",\"user_id\":\"62\",\"user_org_id\":\"101\",\"phone_mobile\":\"510-427-9639\",\"user_email\":\"abc@pdmoffice.com\"}"}

我有什么从这个字符串中删除反斜杠

result.replaceAll("\\","");

比之后它会给我这个不在Json Formate中的字符串。

{"response":"{"time_zone":"","session_token":"nskfndkjfsfsdffjsdfd","user_login":"newoff2","user_profile_img":"http://absdds.org/system/photos/62/medium/images.jpg?1462446436","success":"0","org_admin":"","user_id":"62","user_org_id":"101","phone_mobile":"510-427-9639","user_email":"hjhjh@pdmoffice.com"}"}

它给我扩展

    org.json.JSONException: Unterminated object at character 17 of 

{"response":"{"time_zone":"","session_token":"kjshhdscncnxzcxclx","user_login":"newoff2","user_profile_img":"http://abcd.org/system/photos/62/medium/images.jpg?1462446436","success":"0","org_admin":"","user_id":"62","user_org_id":"101","phone_mobile":"510-427-9898","user_email":"sdgas@pdmoffice.com"}"}

如何使用正确的 Json Formate 删除此反斜杠?

提前致谢

【问题讨论】:

  • 修复服务器转义引号...不要修复 Java 代码
  • 没错,不要编辑响应码,找转换器或者正确的json阅读器。或者为了获得最佳实践,修复 web 服务端的代码。
  • 也许,jodatime 可以解决您的问题。
  • @RushDroid 您是否设法在 Android 端解决了这个问题?还是你在服务器端修复它?
  • @hemanthkumar 我从 android 端解决了这个问题。

标签: java android json parsing backslash


【解决方案1】:

命令

result.replaceAll("\\","");

是正确的,如果您尝试使用在线 json 格式化程序 (https://jsonformatter.curiousconcept.com/) 显示服务器响应,您可以清楚地看到该字符串的格式不正确。 “响应”后的双引号和末尾的双引号不是必需的。

【讨论】:

  • 我认为这行不通。例如,如果 JSON 数据实际上在字符串中有反斜杠怎么办?
  • 我同意你的看法@cricket_007,但我专注于 RushDroid 提供的具体示例
  • 在 json 本身包含反斜杠作为其值(例如 web url)的大多数情况下,它将不起作用。然后 url 值将被完全销毁。接受错误答案。我在下面的帖子中发布了正确的答案。唉,提问者不知道他将什么危险代码推入了他的项目。
【解决方案2】:

更新日期:2019 年 8 月 通过自动省略反斜杠,使用谷歌的 Gson 解析为 Json:

JAVA 代码:

    JsonParser jsonParser = new JsonParser();
    JsonObject jsonObject = jsonParser.parse("your jsonString with backslash").getAsJsonObject();

KOTLIN 代码:

    val jsonParser = JsonParser()
    val jsonObject = jsonParser.parse("your jsonString with backslash").asJsonObject

【讨论】:

    【解决方案3】:

    从 JSON 字符串中删除反斜杠的替代方法。

    s = Your String with Back Slash
    

    用于将 String 转换为 JSONObject:

    JSONObject jsonObject = new JSONObject(s);
    

    用于将 String 转换为 JSONArray:

    JSONArray jsonArray = new JSONArray(s);
    

    【讨论】:

      【解决方案4】:

      你可以试试这个,效果很好

      String jsonStr4 = jsonStr3.replaceAll("\"", "");
      

      【讨论】:

      • 能否为您的答案添加解释以帮助未来的读者?
      猜你喜欢
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 2019-02-02
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      相关资源
      最近更新 更多