【问题标题】:Need to escape the double or some special characters in a String需要转义字符串中的双精度字符或某些特殊字符
【发布时间】:2013-12-27 20:04:24
【问题描述】:

我想将来自服务器的推送消息转换为带有特殊字符的字符串。

我使用JSONObject在使用文本之前对其进行转换。

这是我从服务器发来的消息:

{"aps":{"alert":{"body":**"push message 4 test Close Notification in \"Android\" PU45"**,"action-loc-key":"OK","screenId":"110","sdata":"sid=SER020","launch-image":"appicon"},"sound":"ring1"}}.

以粗体突出显示的是我的字符串。我想转义字符串中的双引号,因为子字符串 Android 应该在弹出窗口中显示为带有双引号的文本。

对这个问题有什么帮助吗?

提前谢谢大家, 贾纳尔丹。

【问题讨论】:

    标签: java android


    【解决方案1】:
    String jsonString = "YOUR JSON HERE";
    JsonObject json = new JsonObject(jsonString);
    JsonObject aps = json.getJsonObject("aps");
    JsonObject alert = aps.getJsonObject("alert");
    String body = alert.getString("body");
    
    body.replace("\"", "");
    

    【讨论】:

    • 非常感谢。让我试试。
    【解决方案2】:

    为什么不从服务器本身发送时删除引号。签出this

    例如:要在该 android 模式之前和之后添加 Quote,请这样做。

    Pattern p = Pattern.compile("\"([^\"]*)\"");
    Matcher m = p.matcher(line);
    while (m.find()) {
      String fetched = "\"+m.group+"\"";
      System.out.println(fetched);
    }
    

    【讨论】:

    • 但我需要在弹出窗口中向用户显示时,字符串“Android”应该用双引号引起来。这是我来自服务器的实际数据: {"aps":{"alert":{"body":push message 4 test Close Notification in "Android" PU45,"action-loc-key":"OK","screenId" :"110","sdata":"sid=SER020","launch-image":"appicon"},"sound":"ring1"}}
    • 这是我在 android 中的 bundle 数据:onMessage() Received message intent = Bundle[{from=319471187667, mxkey={\"aps\":{\"alert\":{\"body \":push message 4 test Close Notification in \"Android\" PU45,\"action-loc-key\":\"OK\",\"screenId\":\"110\",\"sdata\" :\"sid=SER020\",\"launch-image\":\"appicon\"},\"sound\":\"ring1\"}}, collapse_key=do_not_collapse}]
    • 检查我发布的链接并在您手动检索的值之前和之后添加“。
    • @Janardhan:请参考我添加的代码。相应地更改并使用它。
    • @Janardhan:如果该代码对您有用,请将其标记为答案,以便其他人可以使用它。
    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2011-05-11
    • 2011-05-07
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多