如何检查来自服务器的响应是否是Appcelerator中的JSON对象?

时间:2016-07-24 14:43:53

标签: json titanium appcelerator appcelerator-titanium

如果响应是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) === "{")

2 个答案:

答案 0 :(得分:1)

按照Prashant和Carlos的建议,我在onload中使用了try / catch,谢谢你们。

True -> All (satisfies p) (x :: filter p xs)

答案 1 :(得分:0)

以下是我在验证API发送的JSON响应时所做的工作:

// 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.'; 
}

另见:JSON.parse Function (JavaScript)