这是我的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上更改任何内容。