2017-05-29 6 views
-1

Ich habe ein Array:Convert Array JSON

["dyGYrcK", "tRCCMsK" ,"CM1HGi3"] 

ich möchte es konvertieren, so JSon:

{ 
    data: [ 
     { 
     "expiry" : 0, 
     "tokens" : { 
      "0" : "dyGYrcK", 
      "1" : "tRCCMsK", 
      "2" : "CM1HGi3" 
     } 
     } 
    ] 
} 

ich dies zu finden, sehr schwierig. Ich habe eine Menge ausprobiert und ich erhalte diese Ausgabe zur Zeit:

{ 
    "data": [ 
    "dyGYrcK", 
    "tRCCMsK", 
    "CM1HGi3" 
    ] 
} 

ich derzeit tue dies:

return response()->json(['data' => $data], 201); //$data is array 
+0

können Sie nur Ihre eigenen nicht aufrollen, wissen Sie bereits, was '$ data' ist – Ghost

Antwort

3

Das Datenfeld muss den Schlüssel Ablauf und Token. Wenn Sie möchten, dass JSON encode die Schlüssel setzt, müssen Sie sie auch setzen.

Also ich denke, Ihr Array aussehen muss:

$data = [ 
    "expiry" => 0, 
    "tokens" => [ 
     "0" => "dyGYrcK", 
     "1" => "tRCCMsK", 
     "2" => "CM1HGi3" 
    ] 
] 
0

Um den numerischen Index, den Sie in der token Struktur wollen zu erhalten, müssen Sie Ihr Array zu einem Objekt zuerst konvertieren. Dann fügen Sie einfach die Eigenschaften zu einem neuen, "leeren" Objekt hinzu ... und schließlich kodieren Sie dieses Objekt als JSON.

$array = ["dyGYrcK", "tRCCMsK" ,"CM1HGi3"]; 

$obj = new StdClass; 
$obj->data[] = ['expiry' => 0, 'tokens' => (object) $array]; 
echo json_encode($obj); 

// output: 
// {"data":[{"expiry":0,"tokens":{"0":"dyGYrcK","1":"tRCCMsK","2":"CM1HGi3"}}]} 
0
$tokens = ["dyGYrcK", "tRCCMsK" ,"CM1HGi3"] ; 

$data = [ 
    'expiry' => 0, 
    'tokens' => (object)$tokens 
]; 

return response()->json(['data' => [$data]], 201); 

Ergebnisse in

{ 
    "data": [ 
     { 
      "expiry": 0, 
      "tokens": { 
       "0": "dyGYrcK", 
       "1": "tRCCMsK", 
       "2": "CM1HGi3" 
      } 
     } 
    ] 
}