JSON - 验证Json数组或对象

时间:2013-09-30 18:56:30

标签: javascript json

这是2个javascript变量:

<script language="javascript" type="text/javascript">
var example1 = 'Mr.:1|Mrs.:2|Ms.:3|Dr.:4|Sr.:5|Jr.:6';
var example2 = {'Mr.':'1','Mrs.':'2','Ms.':'3','Dr.':'4','Sr.':'5','Jr.':'6'}
</script>

使用javascript,有没有办法检测哪一个不是json

4 个答案:

答案 0 :(得分:5)

您可以使用JSON.parse函数: http://msdn.microsoft.com/en-us/library/cc836466%28v=vs.85%29.aspx

如果传入其中的文本无效JSON,则会抛出异常。

编辑:

注意到您没有粘贴JSON代码的评论是正确的。这段代码:

var json = {"var1":"val1"};

实际上是一个JavaScript对象。它看起来非常相似,并且很容易在两者之间(使用JSON.stringify和JSON.parse),但它们是不同的概念。

答案 1 :(得分:2)

使用try catch并相应处理:

function IsJsonString(str) {
  try {
      JSON.parse(str);
  } catch (e) {
      return false;
  }
  return true;
}

答案 2 :(得分:1)

如果你想在js中获取变量的类型,

你可以试试这个

typeof("somevalue")
//returns string

typeof数组或对象会返回'对象' 喜欢

var arr = [];
typeof(arr) // returns 'object'

答案 3 :(得分:1)

像这样

try {
    JSON.parse(example1);
} catch (e) {
    console.log(example1+' is not valid JSON');
}