0

这是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

4 回答 4

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),但它们是不同的概念。

于 2013-09-30T18:57:47.183 回答
2

使用 try catch 并相应地处理:

function IsJsonString(str) {
  try {
      JSON.parse(str);
  } catch (e) {
      return false;
  }
  return true;
}
于 2013-09-30T19:00:21.640 回答
1

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

你可以试试这个

typeof("somevalue")
//returns string

typeof 数组或对象会像你一样返回“对象”

var arr = [];
typeof(arr) // returns 'object'
于 2013-09-30T18:59:54.483 回答
1

像这样

try {
    JSON.parse(example1);
} catch (e) {
    console.log(example1+' is not valid JSON');
}
于 2013-09-30T18:59:54.903 回答