相关文章推荐
活泼的板栗  ·  无毛豚鼠_百度百科·  4 月前    · 
精明的手套  ·  耳鼻咽喉头颈外科学系简介-厦门大学医学院·  5 月前    · 
性感的钱包  ·  下载Windows ...·  10 月前    · 
空虚的荒野  ·  亨氏问题婴儿米粉铅超标量成谜专家吁加强出厂检 ...·  1 年前    · 
豪气的地瓜  ·  曙光薇酒店(南京夫子庙店)·  1 年前    · 
小百科  ›  如何测试字符串是否为JSON?开发者社区
科技新闻 javascript 字符串函数
正直的酸菜鱼
1 年前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 如何测试字符串是否为JSON?

Stack Overflow用户
提问于 2012-03-21 20:38:58
EN

我有一个简单的AJAX调用,服务器将返回一个包含有用数据的JSON字符串,或者返回一个由PHP函数 mysql_error() 生成的错误消息字符串。如何测试此数据是JSON字符串还是错误消息。

使用一个名为 isJSON 的函数会很好,就像您可以使用函数 instanceof 来测试某个东西是否是一个数组一样。

这就是我想要的:

代码语言: javascript
复制
if (isJSON(data)){
    //do some data stuff
}else{
    //report the error
    alert(data);
}
17 311.1K 0 票数 249
EN
mysql
json
javascript

回答 17

Stack Overflow用户

回答已采纳

发布于 2012-03-21 20:42:27

使用JSON.parse

代码语言: javascript
复制
function isJson(str) {
    try {
        JSON.parse(str);
    } catch (e) {
        return false;
    return true;
}
票数 410
EN

Stack Overflow用户

发布于 2015-10-27 21:56:03

此代码为 JSON.parse(1234) 、 JSON.parse(0) 、 JSON.parse(false) 或 JSON.parse(null) ,所有这些都将返回true。

代码语言: javascript
复制
function isJson(str) {
    try {
        JSON.parse(str);
    } catch (e) {
        return false;
    return true;
}

所以我用这种方式重写了代码:

代码语言: javascript
复制
function isJson(item) {
    item = typeof item !== "string"
        ? JSON.stringify(item)
        : item;
    try {
        item = JSON.parse(item);
    } catch (e) {
        return false;
 
推荐文章
活泼的板栗  ·  无毛豚鼠_百度百科
4 月前
精明的手套  ·  耳鼻咽喉头颈外科学系简介-厦门大学医学院
5 月前
性感的钱包  ·  下载Windows 驱动程序工具包(WDK) - Windows drivers | Microsoft ...
10 月前
空虚的荒野  ·  亨氏问题婴儿米粉铅超标量成谜专家吁加强出厂检测| Foodaily每日食品
1 年前
豪气的地瓜  ·  曙光薇酒店(南京夫子庙店)
1 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南