Supponendo che io abbia un'API da consumare che usa JSON come metodo di trasmissione dati, qual è il modo ideale per decodificare il JSON restituito da ciascuna risorsa API? Ad esempio, in Java vorrei creare una classe per ogni risorsa API, quindi avviare un oggetto di quella classe e consumarne i dati.
ad esempio:
class UserJson extends JsonParser
{
public function UserJson(String document) {
/*Initial document parsing goes here...*/
}
//A bunch of getter methods . . . .
}
Probabilmente fai qualcosa di simile a questo:
UserJson userJson = new UserJson(jsonString);//Initial parsing goes in the constructor
String username = userJson.getName();//Parse JSON name property then return it as a String.
O quando si utilizza un linguaggio di programmazione con array associativi (ad es., tabella hash) il processo di decodifica non richiede la creazione di una classe:
(PHP)
$userJson = json_decode($jsonString);//Decode JSON as key=>value
$username = $userJson['name'];
Ma, quando sto programmando in linguaggi di programmazione procedurale (C), non posso andare con nessuno dei due metodi, dato che C non è né OOP né supporta array associativi (di default, almeno).
Qual è il metodo "corretto" per analizzare stringhe JSON predefinite (ad esempio, documenti JSON specificati dal provider API tramite esempi o documentazione)?
Il metodo che sto usando attualmente sta creando un file per analizzare ogni risorsa API, il problema con questo metodo è che è fondamentalmente una versione scadente del metodo OOP, poiché sembra esattamente come il metodo OOP ma non lo fa fornire eventuali vantaggi OOP (ad esempio, non può passare un oggetto del parser, ecc.).
Ho pensato di incapsulare ogni file parser delle risorse API in una struttura accessibile pubblicamente (puntando tutte le funzioni / variabili pubblicamente utilizzabili alla struttura) quindi accedendo al codice del file parser dalla struttura ( parser.parse()
, parser.getName()
, ecc.). In questo modo sembra un po 'meglio del mio attuale metodo, ma è solo una fregatura del modo OOP, non è vero?
Qualche suggerimento sui metodi per analizzare i documenti JSON sui messaggi di programmazione procedurali? Qualche commento sui metodi che utilizzo attualmente (o 3 di essi)?