2016-12-05 2 views
-2

im mit PHP bauen, aber isent meinem Json Objekt senden ich will ...wie diese json in einem Push php

ich brauche immer die Art und Weise meine Json so sein:

{ 
    "to": ["xxx"], 
    "data": { 
     "title": "dw", 
     "body": "dw", 
     "actions": [ 
      { "icon": "emailGuests", "title": "Candidatar-me", "callback": "app.emailGuests", "foreground": true}, 

     ] 
    } 
} 

aber im immer diese statt:

{ 
    "to": "xxx", 
    "data": { 
    "title": "dw", 
    "body": "dw", 
    "actions": { 
     "icon": "send.ico", 
     "title": "EMAIL GUESTS", 
     "callback": "app.callbackName", 
     "foreground": true 
    } 
    } 
} 

ich baue meine json wie folgt aus:

$fields = array ( 'to' => $row1['fcm_registered_id'] , 
        'priority' => "high", 
        'data' => array("title" =>$titlepost, 
            "body"=> $msg, 
            "actions" => array('icon' => 'send.ico', 
            'title' => 'EMAIL GUESTS', 
            'callback' => 'app.callbackName', 
            'foreground' => true 
            ) 
        ), 
       ); 
+0

gut, nur Blick auf mich: Ihre gewünschten Daten structure hat eine first-level-fild namens 'registration_ids' - also denkst du nicht das * irgendwo * solltest du ** dieses Feld ** deiner Datenstruktur hinzufügen? auch - es hat kein 'zu' Feld - warum hast du also gedacht, dass es eine gute Idee ist, * das Feld * stattdessen hinzuzufügen? Die Frage deutet darauf hin, dass Sie tatsächlich * nichts * versucht haben, das von Ihnen beschriebene Ziel zu erreichen, und möchten stattdessen, dass wir es für Sie tun. –

+0

Ich versuchte ... es ist nicht die Namen, die ich interessiere es ist die Struktur ... das war nur ein Beispiel –

+0

Nun, Sie sehen die Struktur in Ihrem Beispiel. der Wert von 'registration_ids' ist ein Array - also sollten Sie dort ein Array hinzufügen, nicht einen einzigen Wert .... –

Antwort

3

Denken Sie daran, dass json_encode nicht numerische indizierte Arrays in Objekte konvertiert. Es gibt warum, warum Sie Objekte anstelle von Array von Objekten erhalten. Es reicht aus, dieses Array mit einem anderen Array zu umhüllen. Hier ist festgelegter Code:

$fields = array ( 
    'to' => array($row1['fcm_registered_id']), 
    'data' => array(
     "title" =>$titlepost, 
     "body"=> $msg, 
     "actions" => array(
       array(
        'icon' => 'send.ico', 
        'title' => 'EMAIL GUESTS', 
        'callback' => 'app.callbackName', 
        'foreground' => true 
       ) 
     ) 
    ) 
); 

Und hier arbeitet Beispiel: http://phpio.net/s/1n0e

Kleine Anmerkung: versuchen, neue Array-Syntax zu verwenden: [] als alte array()

+0

perfektioniert tks viel Piotr –

+0

Gern geschehen. Bitte markieren Sie die Antwort als beste und viel Glück :-) – piotr