Visualizzazione risultati 1 fino 2 di 2

Discussione: Parse codice JSON con opzioni

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito Parse codice JSON con opzioni

    Buonasera.
    Ho questo codice JSON e lo parso con json_decode e con un ciclo for accendendo poi ai vari oggetti come più mi interessa.

    Adesso ho bisogno di mostrare (come output) solo la data odierna, quella di domani e altri 3 giorni per un totale di 5 giorni a partire da prima ed ogni tot di ore (minimo ogni 3).

    Questo è il codice del parsing principale:

    Codice PHP:
    $get = file_get_contents("resp.json");
    $wu = json_decode($get);
    $cd = count($wu_dec->hourly_forecast)-1;

    for(
    $i=0;$i<=$cd;$i++){
    $data_unix = $wu_dec->hourly_forecast[$i]->FCTTIME->epoch;

    // continua -->
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Se puoi assumere che il JSON contenga informazioni su ogni ora e non ci siano "buchi", puoi lavorare sugli indici:
    Codice:
    for (j = 0; j < 5 * 24 && j < cd; j += 3) {
        offset = i + j;
    Se, invece, ci possono essere informazioni mancanti devi "guardare in avanti" cercando data e ora di cui hai bisogno:
    Codice:
    function search_date ($array, $timestamp, $start_from = 0) {
        $size = count($array);
        $i = $start_from;
    
        while ($i < $size) {
            if ($array[$i]->FCTTIME->epoch == $timestamp) {
                return ...;
            }
            ++i;
    }
    ...
    for (i = 0; i <= cd; $i++) {
        data_unix = wu_dec->hourly_forecast[i]->FCTTIME->epoch;
        fra_un_ora = search_date(wu_dec->hourly_forecast, data_unix + 60 * 60, i);
        fra_un_giorno = search_date(wu_dec->hourly_forecast, data_unix + 24 * 60 * 60, i);
    }
    O qualcosa di simile.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •