typeof 肯定不行的嘛  json格式还是是一个字符串 需要你自己去解析的  在js中 都隶属于object对象    你可以用eval转换看能否转换成功 转换不成功 那肯定不行 (但是这里面要排除 json格式里面没有多层对象属性) 

解决方案 »

  1.   

    如果你的json里面只有一个对象那你可以用{  }来判断 但是里面如果是 多个对象数组 那么就是以[   ]开头结尾的
      

  2.   

    json格式 里面的属性的格式也是有标准的 比如不能是单引号什么的  对象属性以逗号结尾之类的  所以 中括号和大括号也不是最直观的方法哦
      

  3.   

    我知道可以用这个方法判断json是否为空if (JSON.stringify(reportData) == "{}") {}
    JSON对象里面应该也有判断是否是json的,你可以去json官网看下这两个都是json官网提供的操作json的
    JSON
    json2.js
      

  4.   


    <html>
    <meta charset="utf-8"/>
    <head>
    <script>

    var isJson = function(obj){
    var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length
    return isjson;
    }
    var t = isJson({"name":"boy"});
    alert(t);

    </script>
    </head>
    <body>
    </body>
    </html>
      

  5.   


    //解析+取值 能取到就是 不能取到就不是了
    <script>
    try {
    var t = "{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }";
    var jsonobj = eval('(' + t + ')');
    var firstName = jsonobj.firstName;
    alert("yes")
    } catch(err) {
    alert("no");
    }
    </script>
      

  6.   

    var t = "{'firstName': 'cyra'}";
    var jsonobj = JSON.parse(t);
    if(jsonobj)
    {
    alert("yes")
    } catch(err) {
    alert("no");
    }
      

  7.   

    网上有检验json格式数据的网站,把你的数据粘过去测试一下就知道是否为正确格式