Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
$data = array ( "data" => array ( "emailaddress" => "xxx@yyy.cz", "name" => "Jmeno", ) ); Výsledek pomocí funkce json_encode($data): { "data": { "emailaddress": "xxx@yyy.cz", "name": "Jmeno" } } Potřebuji docílít formátu, kde jsou hranaté závorky: { "data": [ { "emailaddress": "xxx@yyy.cz", "name": "Jmeno" } ] } Jde toho nějak docílit? API, které zkouším rozchodit bere pouze formát JSONu, kde jsou hranaté závorky. Nebo to musím řešit v tomto případě, pouze přímo takto: $data = ' { "data": [ { "emailaddress": "xxx@yyy.cz", "name": "Jmeno" } ] }'; |
||
Lamicz Profil |
echo json_encode(['data' => [['emailaddress' => 'xxx@yyy.cz', 'name' => 'Jmeno']]]); |
||
xlifer Profil |
Lamicz:
Zkouším, ale hlásí to chybu: Parse error: syntax error, unexpected '[', expecting ')' |
||
Kcko Profil |
#4 · Zasláno: 25. 6. 2018, 21:29:36
xlifer:
Máš starou verzi PHP, přepiš si to na array(); |
||
Keeehi Profil |
#5 · Zasláno: 25. 6. 2018, 22:01:47
xlifer:
Lepší by bylo updatovat PHP. První PHP které zná krátkou vezi zápisu polí je PHP 5.4. To znamená, že máš PHP 5.3 nebo starší a to v důsledku znamená že provozuješ verzi která nedostává už ani bezpečnostní záplaty minimálně už téměř čtyři roky. Koncem roku skončí podpora pro 5.6 a 7.0 takže doporučoval bych 7.1 které aktivní vývoj končí letos ale pak ještě rok bude dostávat bezpečnostní aktualizace nebo rovnou 7.2 která má aktivní podporu až do konce 2019 a pak ještě rok bezpečnostní aktualizace. |
||
xlifer Profil |
Kcko:
Nevím jak to myslíš? Array řeším hned na začátku příspěvku, to s toho dostanu stejný výsledek, nebo ne? Keeehi: Rozumím, díky za info. |
||
Keeehi Profil |
#7 · Zasláno: 25. 6. 2018, 22:54:52
xlifer:
„Nevím jak to myslíš? Array řeším hned na začátku příspěvku, to s toho dostanu stejný výsledek, nebo ne?“ [] je úplně to samé jako array() . Je to jen kratší zápis toho samého protože kdo by se s tím chtěl stále vypisovat, že? Takže každé [ nahraď array( a každé ] nahraď ) a bude ti to fungovat. Nebo pokud upgraduješ, tak ti to bude fungovat i v té zkrácené formě.
Jinak objekt, nebo asociativní pole json_encode překládá těmi chlupatými závorkami, "normální" pole překládá hranatými. json_encode(array(1, 2, 3)); // [1,2,3] json_encode(array('a' => 1, 'b' => 2, 'c' => 3)); //{"a":1,"b":2,"c":3} Jinak to co po tobě to API ze sémantického hlediska vyžaduje je pole objektů. Což bude zřejmě z důvodu, že jako data budeš moci poslat údaje o více lidech. { "data": [ { "emailaddress": "xxx@yyy.cz", "name": "Pavel" }, { "emailaddress": "aaa@bbb.cz", "name": "Lukáš" } ] } |
||
xlifer Profil |
#8 · Zasláno: 25. 6. 2018, 23:17:21
Keeehi:
Super, moc díky za vysvětlení. Teď jsem zase o něco moudřejší. |
||
Časová prodleva: 6 let
|
0