Perché i dati inviati dal server possono essere in una varietà di formati, ma inviati al server può essere solo una stringa

0

Recentemente mi sono imbattuto in un errore, immagino causato dalla mia mancanza di comprensione di come funziona HTTP, dove stavo inviando un oggetto JSON al server per essere memorizzato nei dati di sessione, e poi inviato al client in un secondo momento tempo.

Quando stavo inviando i dati al server tutti i miei booleani erano racchiusi tra virgolette e quindi quando sono stati in seguito rispediti al client e analizzati, tutti i miei valori falsi sono stati valutati come veri - ovviamente un errore abbastanza grave ma mi ci sono voluti anni per eseguire il debug perché ero stupido e vedevo i valori "falsi" negli strumenti di chrome dev e pensavo che tutto andava bene con la risposta del server e cercavo il problema altrove.

Quindi mi stavo chiedendo, c'è un modo per impostare un'intestazione di tipo di contenuto quando si inviano dati al server, il che farebbe mantenere i tipi di dati, come è possibile quando si invia una risposta dal server al client?

    
posta Keir Lavelle 19.12.2013 - 11:28
fonte

1 risposta

2

JSON è una stringa. A meno che non si disponga di una rielaborazione dei dati lato server, è necessario recuperare esattamente ciò che è stato inviato, più o meno alcune interruzioni di riga. Se il parser JSON sul client non interpreta correttamente un file serializzato su una copia superficiale dello stesso oggetto, hai un parser JSON cattivo. ( true , falso e null sono validi in base al standard).

Se è necessario indicare esplicitamente il tipo di un campo, è necessario prendere in considerazione un formato con tali informazioni nella stringa. XML con un XSD (o DTD) può raggiungere questo obiettivo, oppure puoi semplicemente includere un flag nel tuo JSON che denota il tipo di valore.

    
risposta data 19.12.2013 - 14:41
fonte

Leggi altre domande sui tag