04. maj 2017 - 11:49Der er
12 kommentarer og 1 løsning
JSON sti
Kære Eksperter,
Jeg er ny i JSON, og håber at I kan hjælpe mig med dette, formentlig rette lette, spørgsmål.
Jeg skal have konverteret bitraten på en MP3, hvilket bliver gjort via en API på en anden server. Konverteringen er som den skal være, men jeg skal bruge et id på JSON responderingen som string. Dog kan jeg ikke finde den rigtige "sti".
Svaret ser ud som følger:
HTTP/1.1 201 Created Server: nginx Date: Thu, 04 May 2017 09:45:28 GMT Content-Type: application/json Content-Length: 967 Connection: keep-alive X-Powered-By: PHP/5.6.29 Cache-Control: private, must-revalidate pragma: no-cache expires: -1 Vary: Accept-Encoding,User-Agent X-Robots-Tag: noindex, nofollow Accept-Ranges: bytes Age: 0 X-Cache: MISS X-Server: web2 {"id":"8ef9aacc-183f-4546-8b94-2c24e168d218","token":"4617b2fc94419216b9decda9c6aa51a2","type":"job","status":{"code":"downloading","info":"The file is currently downloading from the source URL."},"errors":[],"process":true,"conversion":[{"id":"81fc91dc-052f-4349-85ea-54ccdf947251","target":"mp3","category":"audio","options":{"audio_bitrate":112,"start":"00:00:30","channels":"stereo","frequency":null,"download_password":null,"allow_multiple_outputs":false,"normalize":false,"end":null}}],"input":[{"id":"2a9e4eb2-b2ab-4491-b6f9-be89a265c027","type":"remote","source":"http:\/\/upfrontservice.net\/promoplayer\/media\/client1\/audio\/4.mp3","filename":"","size":0,"hash":"","checksum":"","content_type":"","created_at":"2017-05-04T11:45:28","modified_at":"2017-05-04T11:45:28"}],"output":[],"callback":"","notify_status":false,"server":"https:\/\/www10.online-convert.com\/dl\/web2","spent":0,"created_at":"2017-05-04T11:45:28","modified_at":"2017-05-04T11:45:28"}
Og den string jeg kal bruge er conversion ID'et. Jeg har prøvet følgende, hvilket giver et tomt svar:
$new_id = $response->{'conversion'}->{'id'};
Såfremt I kan prege mig ind på den rigtige sti, vil det blive utroligt værdsat :)
Kan stadig ikke få den til at spytte ID'et ud som en string. Kan det være at "conversion" ligger som en del af et andet array, som dermed skal smides ind før?
$jstest = ' {"id":"8ef9aacc-183f-4546-8b94-2c24e168d218","token":"4617b2fc94419216b9decda9c6aa51a2","type":"job","status":{"code":"downloading","info":"The file is currently downloading from the source URL."},"errors":[],"process":true,"conversion":[{"id":"81fc91dc-052f-4349-85ea-54ccdf947251","target":"mp3","category":"audio","options":{"audio_bitrate":112,"start":"00:00:30","channels":"stereo","frequency":null,"download_password":null,"allow_multiple_outputs":false,"normalize":false,"end":null}}],"input":[{"id":"2a9e4eb2-b2ab-4491-b6f9-be89a265c027","type":"remote","source":"http:\/\/upfrontservice.net\/promoplayer\/media\/client1\/audio\/4.mp3","filename":"","size":0,"hash":"","checksum":"","content_type":"","created_at":"2017-05-04T11:45:28","modified_at":"2017-05-04T11:45:28"}],"output":[],"callback":"","notify_status":false,"server":"https:\/\/www10.online-convert.com\/dl\/web2","spent":0,"created_at":"2017-05-04T11:45:28","modified_at":"2017-05-04T11:45:28"} '; $jsdata = json_decode($jstest, true); var_dump($jsdata['conversion'][0]['id']);
giver
string(36) "81fc91dc-052f-4349-85ea-54ccdf947251"
Hvorfor [0] skal med har jeg ingen god forklaring på, ud over at sådan ser data ud.
Feeeeeeeedt - havde fuldstændig overset muligheden for at give linien med CURLOPT_HEADER, og kun prøvet at køre false på nogle af de andre, hvilket ikke gav noget resultat.
Det virker nu - jeg takker mange gange for hjælpen! :)
Smed den ind sådan her: $json['conversion'][0]['id'];
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.