2016-07-22 4 views
0
{ 
"to" : "required token..", 
"notification" : { 
     "body" : "great match!", 
     "title" : "Portugal vs. Denmark", 
     "icon" : "myicon" 
    }, 
"data": { 
    "id": 1, 
    "action": "load_content", 
    "frequency": 1, 

    "payload": "{\"module\":\"news\",\"id\":32}" 
} 
} 

コード:Firebaseデータペイロードメッセージは、何らかの理由で文字列から特殊文字を削除し

payload = data.get("payload"); 
Log.i(TAG, " received payload =" + payload); 

私は、文字列として送信していたペイロードを抽出し、logcatにそれを置くとき、私は

を取得します

{ "モジュール": "ニュース"、 "ID":32}

私はそれが送信されるときに文字列を保持したいでしょう( '/'を付けて)。なぜそれが起こっているのか分かりません。どんな助けも高く評価されます。

+0

あなたは、これはあなたがhttp://meta.stackexchange.com/questions/66377/what-is-([XY問題]かなりの音を記述している何のためにしたいですか何を?:出力でのように見えるものthe-xy-problem) – adolfosrs

+0

ペイロード文字列は、さらにjavascriptに添付されますchは私がそこにいるために特殊文字が必要な理由です。 final String javascript = "function_name(\" key \ "、" + payload + ")"; webview.evaluateJavascript(javascript .. –

+0

これはどのように保存していますか?文字列ではなくJSONとして保存するのはなぜですか? – adolfosrs

答えて

0

現在、あなただけのバックスラッシュを保持したい場合は、「あなたも\であることをエスケープする必要がありますあなたの結果のフィールドは次のようになりますので、\で二重引用符をエスケープされています。その結果必要があることを

"payload": "{\\\"module\\\":\\\"news\\\",\\\"id\\\":32}" 

{\"module\":\"news\",\"id\":32} 
+0

ペイロードは単なる文字列を渡していますが、私が使用しているFCMは、実際に文字列の中に入れているものとは関係ありません。あなたが示唆したものは正しいものですが、私は何を変更できません。 FCMが二重引用符で囲んで文字列として渡しても、FCMが自分のデータを変更するのはなぜだろうか –

+0

ペイロードは、doubleを含むことに関する規則を持つJava Stringとして解釈される必要があります引用符とバックスラッシュ "{\"モジュール\ ":\"ニュース\ "、\" id \ ":32}" "{" module ":" news "、" id ":32}"と解釈されます。あなたが見ているものと一致する –

+0

おかげで助けてくれた! :) –

関連する問題