
Shane
Ich arbeite nicht viel mit PHP und bin ein wenig unscharf bei der Objekterstellung. Ich muss eine Webservice-Anfrage senden, die json sendet, und ich denke, ich habe diesen Teil abgedeckt. Bevor ich die Daten übermitteln kann, muss ich ein verschachteltes Objekt erstellen. Ich ging davon aus, dass dies aufgrund meiner Erfahrung mit ecma-basierten Skriptsprachen trivial wäre, aber ich finde die Syntax schwierig zu navigieren. Das Objekt, das ich erstellen möchte, ist unten.
{ "client": {
"build": "1.0",
"name": "xxxxxx",
"version": "1.0"
},
"protocolVersion": 4,
"data": {
"distributorId": "xxxx",
"distributorPin": "xxxx",
"locale": "en-US"
}
}
Ich habe viele Beispiele für flache Objekte gesehen, aber ich habe noch kein Minimalbeispiel für ein verschachteltes Objekt gefunden. Was wäre die PHP-Syntax für das obige Objekt? Ist dies eine ungewöhnliche Sache in PHP?
Diese JSON-Struktur kann durch folgenden PHP-Code erstellt werden
$json = json_encode(array(
"client" => array(
"build" => "1.0",
"name" => "xxxxxx",
"version" => "1.0"
),
"protocolVersion" => 4,
"data" => array(
"distributorId" => "xxxx",
"distributorPin" => "xxxx",
"locale" => "en-US"
)
));
sehen json_encode

Guillermo Tallano
Hey, hier ist ein schneller Trick, um komplexe JSONs manuell in ein PHP-Objekt zu konvertieren.
Holen Sie sich das JSON-Beispiel so, wie Sie es haben:
{ "client": {
"build": "1.0",
"name": "xxxxxx",
"version": "1.0"
},
"protocolVersion": 4,
"data": {
"distributorId": "xxxx",
"distributorPin": "xxxx",
"locale": "en-US"
}
}
Suchen-Ersetzen {
zu array(
Suchen-Ersetzen :
zu =>
Suchen-Ersetzen }
zu )
Getan.
Verwenden Sie ein Array, um das richtige Format zu erhalten, und rufen Sie dann echo json_encode (array) auf.
array( "client" => array(
"build" => "1.0",
"name" => "xxxxxx",
"version" => "1.0"
),
"protocolVersion" => 4,
"data" => array(
"distributorId" => "xxxx",
"distributorPin" => "xxxx",
"locale" => "en-US"
))

ilikemypizza
$client = new Client();
$client->information = new Information();
$client->information->build = '1.0';
$client->information->name="xxxxxx";
$client->information->version = '1.0';
$client->protocolVersion = 4;
$client->data = new Data();
$client->data->distributorId = "xxxx";
$client->data->distributorPin = "xxxx";
$client->data->locale = "en-US";
Vielleicht so etwas wie oben? Der Client würde zwei Objekte halten. Informationen und Daten.
Bearbeiten
Mit json_encode würden Sie dieses Objekt als Array in PHP erstellen.
$clientObj = array('client'=>
array( array('build'=>'1.0','name'=>'xxxx', 'version'=>'1.0'),
'protocolVersion'=>4,
'data'=>array('distributorId' => 'xxxx', 'distributorPin' => 'xxxx', 'locale' => 'en-US')
);
print json_encode($clientObj);

MSVKC
Wir können auch ein verschachteltes Array erstellen und dann einen json_encode ausführen, um verschachteltes JSON zu erstellen.
Zum Beispiel:
{"User":
{"username":"test",
"address":"Posted value fro address field",
"location":{
"id":12345
}
}
}
Die obige Ausgabe können wir erreichen, indem wir den folgenden PHP-Code schreiben:
<?php
$obj = array(
'username'=>$lv_username,
'address'=>$lv_address,
'location'=>array('id'=>$lv_locationId)
);
$data="{"User":". json_encode($obj) .'}';
echo $data;
?>
Ich hoffe es hilft.

Code Lღver
Verwenden Sie die In-Build-Funktion von PHP:
json_encode();
Dadurch wird das Array in ein JSON-Objekt konvertiert.

Martin
Sie können json_encode verwenden, um ein PHP-Array zu codieren
http://php.net/manual/en/function.json-encode.php
$theArray = array('client'= array('build'=>'1.0',
'name'=>'xxxxx',
'version'=>'1.0'
),
'protocolVersion'=> 4,
'data'=> array('distributorId'=>'xxxx',
'distributorPin'=>'xxxx',
'locale'=>'en-US'
)
);
$theObj = json_encode($theArray);
hoffentlich hilft das..
gepostet, dann schon jede Menge Antworten gesehen! 😐
10054100cookie-checkverschachteltes JSON-Objekt in PHP erstellen?yes