Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605

    Lettura json e Illegal string offset

    Ciao a tutti,
    ho un problema che mi sta facendo sbattere la testa non poco...
    sto utlizzando codeigniter e la libreria restful

    non so cosa ho combinato.. avrò pasticciato di sicuro, fatto sta che non riesco a recuperare più un json inviato in post ad un controllere rest.
    dato questo json che mi invio in post

    codice:
    {
        "codice": "3",
        "anagrafica": [{
            "id": 1,
            "nome": "WQgmah5ivl",
            "cognome": "YfivC9IHhc",
            "IscrizioneCena1": 1,
            "IscrizioneCena2": 1,
            "IscrizioneCena3": 0,
            "PresenteCena1": 0,
            "PresenteCena2": 1,
            "PresenteCena3": 1,
            "idAccesso": 43456,
            "tipologiaUtente": "REL"
        }, {
            "id": 2,
            "nome": "xTuZz7pDfx",
            "cognome": "cELs4CheJx",
            "IscrizioneCena1": 1,
            "IscrizioneCena2": 1,
            "IscrizioneCena3": 1,
            "PresenteCena1": 1,
            "PresenteCena2": 1,
            "PresenteCena3": 0,
            "idAccesso": 50691,
            "tipologiaUtente": "PAR"
        }]
    }

    nel controller prima lo recuperavo semplicementente così:

    $codice = $this->post('codice');
    $anagrafica = $this->post('anagrafica');

    ora quest variabili mi risultano vuote.


    se faccio un:

    $var = $this->post();

    print_r($var);


    codice:
    Array
    (
        [0] => {
        "codice": "3",
        "anagrafica": [{
            "id": 1,
            "nome": "WQgmah5ivl",
            "cognome": "YfivC9IHhc",
            "IscrizioneCena1": 1,
            "IscrizioneCena2": 1,
            "IscrizioneCena3": 0,
            "PresenteCena1": 0,
            "PresenteCena2": 1,
            "PresenteCena3": 1,
            "idAccesso": 43456,
            "tipologiaUtente": "REL"
        }, {
            "id": 2,
            "nome": "xTuZz7pDfx",
            "cognome": "cELs4CheJx",
            "IscrizioneCena1": 1,
            "IscrizioneCena2": 1,
            "IscrizioneCena3": 1,
            "PresenteCena1": 1,
            "PresenteCena2": 1,
            "PresenteCena3": 0,
            "idAccesso": 50691,
            "tipologiaUtente": "PAR"
        }]
    }
    ma se cerco di recuperare il codice in questo modo


    echo ($var[0]['codice']);die();

    mi da questo errore proprio a questa riga...

    <p>Severity: Warning</p>
    <p>Message: Illegal string offset 'codice'</p>


    qualche idea... prima che mi piglia un esaurimento nervoso

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    $var[0] è una stringa json, non un array, quindi cercando una key (in questo caso 'codice') è normale ricevere quell'errore.
    Prima devi trasformare la stringa json usando json_decode.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.