我如何编码单个qoute,而反斜杠不会在JSON中对其进行转义?

时间:2017-02-08 08:09:58

标签: php android json

这是我的Json有效。我使用此JSON在使用SNS的Android和iOS设备上发送通知。但是,

{
"default": "", 
"GCM": "{ \"data\": { \"message\": \"{'user_id':'48491','story_title':'Who is Trumps dangerous best friend?','story_slug':'Who-is-Trumps dangerous best friend?','story_id':'40372','user_full_name':'Gourav Choubey','cover_image':'url','user_profile_photo':'url'}\" } }"
}

当我添加' (单个Qoute)到​​标题,如下面的JSON,仍然是一个有效的JSON,但在设备端,JSON解码无法读取JSON,因为单个qoute也是Story_title,它的关键也从一个qoute开始。

但是Android应用无法显示单个qoutation(')并且通知中没有显示任何内容。

{
 "default": "", 
 "GCM": "{ \"data\": { \"message\": \"{'user_id':'48491','story_title':'Who is Trump's dangerous best friend?','story_slug':'Who-is-Trumps dangerous best friend?','story_id':'40372','user_full_name':'Gourav Choubey','cover_image':'url','user_profile_photo':'url'}\" } }"
}

我尝试使用HTML编码和反斜杠来逃避单个qoute。

然而,如果不对应用程序进行更新,则无法正常工作,如何确保正确发送单个qoute?

终端设备只接收我发送的字符串。

这是我的PHP代码。

  $android_notification_fields = array(
            "user_id" => $result->user_id,
            "story_title" => addslashes($title),
            "story_id" => $result->story_id,
            "user_full_name" => addslashes($result->user_full_name),
            "cover_image" => $result->cover_image,
            'user_profile_photo' => $result->user_profile_photo

        );


      $push_message = '{ "default": "", "GCM":"{\"data\":{\"message\": \"'.str_replace('"', "'", str_replace('\\','',utf8_encode(json_encode($android_notification_fields)))).'\"}}"}';
    print_r($push_message);
    $topic_arn = $this->android_topic_arn;

    }

我知道这很简单,(我在PHP中做后端)。我想在几天内解决这个问题,任何帮助都会非常感激。我想避免在Android App上更改任何内容。

0 个答案:

没有答案