如何知道jQuery和PHP中的返回数据是Json还是String?

我想检查客户端(jQuery)是否从PHP函数返回数据是Json对象或String来分配不同的函数。

如果json的格式不正确,jQuery的parseJson将生成exception。 您可以将您的调用包装在try catch块中。 (但请记住,在正常代码的流程中有exception是不好的做法)

data = '{}'; try { json = $.parseJSON(data); } catch (e) { // not json } 

您还可以使用抛出SyntaxErrorexception的本机JSON.parse()方法

如果您期望错误的JSON作为正常程序工作流程的一部分,那么您可以先使用正则表达式进行检查, Mic的答案非常可靠但在您的情况下,PHP应始终在正常条件下生成有效的json。 如果它无效,那么您的软件中可能存在错误

 try { jQuery.parseJSON( json ) //must be valid JSON } catch(e) { //must not be valid JSON } 

返回数据始终是一个字符串(即字符序列)。 但是,如果你告诉jQuery你期望json响应,它会尝试将字符串转换为javascript对象。
没有专门的网络协议来通过互联网传输JavaScript对象。

在javascript中,您可以使用typeof