检查JSON是只有一个字符串还是数组

时间:2014-09-04 16:03:43

标签: javascript json

从那里How to check whether the given object is object or Array in JSON string我发现有用来比较JSON对象是数组还是对象

if (json instanceof Array) {
    // get JSON array
} else {
    // get JSON object
}

问题我有一个验证器登录表单,我收到的消息如下:

array('password'=> array('isEmpty'=>'值是必需的,不能为空'));

但是有

之类的消息

'电子邮件或密码无效',这不是数组。

问题我在JavaScript文件中需要这样的内容

if(json hasOnlyOneString)
{
    //do something
} else { || } if(json instaceof Array){
    // do another stuff
}

1 个答案:

答案 0 :(得分:1)

听起来有时候你会想到一个数组或一个对象时会得到一个字符串。您可以这样检查:

var obj = {
 "str": "I am a string",
 "arr": ["I am an array"]
};

obj.str instanceof Array; // -> false
obj.arr instanceof Array; // -> true
typeof obj; // -> object
typeof obj.arr; // -> object (uh-oh! eliminate this possibility by first checking to see if it's an array)

if (obj.str instanceof Array) {
  console.log('do array stuff');
} else {
  if (typeof obj.str === "object") {
    console.log('do object stuff');
  } else {
    console.log('do non-array, non-object, probably string stuff');
  }
}