Autor | Zpráva | ||
---|---|---|---|
MakakSK Profil * |
#1 · Zasláno: 17. 7. 2021, 19:25:30
Ahojte,
máme funkciu na stiahnutie dát z api a uloženie do súboru .json // create a file titled 'YYYY-MM-DD' and save the json repsonse to the file $storeFile = fopen( 'json_files/' . $date . '.json', 'w' ); fwrite( $storeFile, $response ); fclose( $storeFile ); A potom spracovávame a triedime cez /** * Get store data from the api and save it in a json file * @param String $date of the store to save * @return void */ function getStoreData( $date ) { // make sure we have a json file with store data if ( !file_exists( 'json_files/' . $date . '.json' ) ) { // if no json file found for the current date hit the api getStoreDataFromAPI( $date ); } // return store data as a php array return json_decode( file_get_contents( 'json_files/' . $date . '.json' ), true ); } /** * Get formatted store data. * @param void * @return Array $sortedItems */ function getStoreSortedData( $date ) { // get items $items = getStoreData( $date ); // create sorted array with two sections $sortedItems = array( 'Category1' => array( 'info' => array( 'title' => 'FEATURED ITEMS' ), 'items' => array() ), 'Category1' => array( 'info' => array( 'title' => 'DAILY ITEMS' ), 'items' => array() ) ); foreach ( $items as $item ) { // add item to sorted items $sortedItems[$item['Category1']]['items'][] = $item; } // return our sorted items array return $sortedItems; } No a problém nastal keď zmenili v tej api dáta, resp. formát maličko upravili a aktuálne mi ukazuje milión errorov a nič nezobrazí. Pôvodne mal ten json súbor formát: [ { "displayName":"Sample Name", "displayAssets":[ { "displayAsset":"x_1235s", "url":"https://website.com/image1.png", "background":"https://website.com/bg1.png" } ], "Date":"2021-06-12", "Category1":"FEATURED ITEMS", "price":{ "regularPrice":1600, "finalPrice":1600 }, } ] No a teraz má { "result":true, "lastUpdate":{ "date":"2021-07-12 00:00:08+00:00" }, "nextUpdate":{ "date":"2021-07-13 00:00:08+00:00" }, "vip":null, "extras":null, "main":[ { "displayName":"Sample Name", "displayAssets":[ { "displayAsset":"x_1235s", "url":"https://website.com/image1.png", "background":"https://website.com/bg1.png" } ], "Date":"2021-06-12", "Category1":"FEATURED ITEMS", "price":{ "regularPrice":1600, "finalPrice":1600 }, } ] } Čiže pridali nejaké nové údaje pred to "main", ktoré sme pôvodne spracovávali a naďalej chceme.. A keď ručne vymažem v uloženom json súbory to predtým a "}" na konci tak to funguje, ale je to dosť na nič. Takže naše funkcie ako napr. <?php echo $item['displayName']; ?> <?php echo number_format( $item['price']['regularPrice'] ); ?> <?php echo $item['displayAssets'][0]['url']; ?> Budem rád za každú radu, veľmi php a toto neovládam tak dúfam že som to tu dal všetko a napísal to zrozumiteľne :( ďakujem veľmi veľmi pekne za každú radu |
||
juriad Profil |
Změň řádku:
return json_decode( file_get_contents( 'json_files/' . $date . '.json' ), true ); $original = json_decode( file_get_contents( 'json_files/' . $date . '.json' ), true ); return $original['main']; To zajistí, že se ze souboru vyzobne jen ta main část. Případně o chlup lépe: return isset($original['main']) ? $original['main'] : $original; Pak to bude fungovat i pro starší stažené soubory. |
||
MakakSK Profil * |
#3 · Zasláno: 17. 7. 2021, 22:40:33
juriad:
Ďakujem ti veľmi pekne, funguje to perfektne :) |
||
Časová prodleva: 3 roky
|
0