Как я могу проверить Appcelerator, если ответ JSON?Как проверить, является ли ответ от сервера объектом JSON в Appcelerator?
Я пробовал обычный способ в js.
Ti.API.info(response.constructor.name); // returns "String"
if (response instanceof JSONObject) //JSON object undefined
Другие способы
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>
}
Я использую подстроку, но это только кажется ошибочным.
if (response.substring(0, 1) === "{")
Я обычно разбираю ответ после того, как я знаю, что это JSON, если я пытаюсь разобрать объект, отличный от JSON, я получаю сообщение об ошибке. –
@Von, я обычно обрабатываю такие случаи внутри блока try-catch-finally, потому что я не буду уверен, что когда сервер отправит мне неправильный ответ JSON, так что лучше обработать их в try-catch вместо if-else, потому что if- else нужны фактические значения и/или тип данных. –
Пойдите для Try Catch. Это единственный способ –