相关文章推荐
强健的鸵鸟  ·  杭州西站停车场将启动收费管理·  1 月前    · 
霸气的小马驹  ·  王者荣耀:项羽虞姬 - ...·  1 年前    · 
纯真的松球  ·  求命运之夜——天之杯Ⅲ:春之歌2020年免费 ...·  1 年前    · 
阳刚的小狗  ·  龙港市人民政府筹备组工作报告·  1 年前    · 
乖乖的土豆  ·  又上线了一部生猛韩片,网飞新片全程高能刺激! ...·  2 年前    · 
Code  ›  如何测试字符串是否为JSON?开发者社区
科技新闻 javascript 字符串函数
https://cloud.tencent.com/developer/ask/sof/48532
正直的酸菜鱼
10 月前
首页
学习
活动
专区
工具
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;
 
推荐文章
强健的鸵鸟  ·  杭州西站停车场将启动收费管理
1 月前
霸气的小马驹  ·  王者荣耀:项羽虞姬 - 穿越千年的虐恋,比《花千骨》更虐心!
1 年前
纯真的松球  ·  求命运之夜——天之杯Ⅲ:春之歌2020年免费高清百度云资源,杉山纪彰主演的_百度知道
1 年前
阳刚的小狗  ·  龙港市人民政府筹备组工作报告
1 年前
乖乖的土豆  ·  又上线了一部生猛韩片,网飞新片全程高能刺激!_福顺_杀手_黄政民
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号