/ / Come verificare se la risposta dal server è un oggetto JSON in Appcelerator? - json, titanium, appcelerator, appcelerator-titanium

Come verificare se la risposta dal server è un oggetto JSON in Appcelerator? - json, titanium, appcelerator, appcelerator-titanium

Come posso verificare su Appcelerator se la risposta è un JSON?

Ho provato il solito modo in js.

Ti.API.info(response.constructor.name); // returns "String"
if (response instanceof JSONObject) //JSON object undefined

Altri modi

        var response = this.responseText;

if (response.constructor === {}.constructor){
Ti.API.info("is object");
response = JSON.parse(response);
}
else{
Ti.API.info("not object");
Ti.API.info(response.constructor); // returns some Krollback <KrollCallback: 0x7fbdc8c0abe0>
}

Sto usando la sottostringa, ma sembra solo imperfetto.

if (response.substring(0, 1) === "{")

risposte:

1 per risposta № 1

Seguendo il consiglio di Prashant e Carlos, ho usato un try / catch all'interno del onload, grazie ragazzi.

        var response = this.responseText;
try {
console.log("success");
var response = JSON.parse(response);
if (callback)
callback(response);
}
catch(e){
console.log("error parsing");
if (callback)
callback("error");
}

0 per risposta № 2

Ecco cosa sto facendo per verificare una risposta JSON inviata da un'API:

// convert http response to json
var CVT_ORDER_SEARCH_RESPONSE = JSON.parse(HttpResponse.responseText);

// verify json response parse returned valid object
if (!CVT_ORDER_SEARCH_RESPONSE){
throw "Invalid JSON response returned by server.";
}

Vedi anche : Funzione JSON.parse (JavaScript)