获取json值

时间:2016-01-30 06:10:28

标签: javascript jquery json

在下面的代码中,我有json变量,其值为

[
  {
    "RegularExp": "[A-z]",
    "ExpressionType": "Alphabets"
  }
],
[
  {
    "RegularExp": "[0-9]",
    "ExpressionType": "Numbers"
  }
]

当我尝试提醒 RegEx 时,它显示[Object,object],[Object,object]。当我尝试获取json解析值时,它会抛出未定义。请帮我解决问题。

function CheckRegularExpression(RegEx) {
        alert('1');
        alert(RegEx[0].RegularExp);// undefined
        alert(RegEx.RegularExp);//undefined.
    }

3 个答案:

答案 0 :(得分:0)

警报功能只接收字符串,它不能呈现对象,因此必须传递字符串化的Object版本。

function CheckRegularExpression(RegEx) {
    alert(JSON.stringify(RegEx);
}

而且,不要混淆别人,你的对象不是单个对象,

[{"RegularExp":"[A-z]","ExpressionType":"Alphabets"}],[{"RegularExp":"[0-9]","ExpressionType":"Numbers"}]

这是2个对象,所以基本上单个对象看起来像

[{"RegularExp":"[A-z]","ExpressionType":"Alphabets"}]

以下示例

function CheckRegularExpression(RegEx) {
  alert(JSON.stringify(RegEx));
}
var MyRegEx = [{"RegularExp":"[A-z]","ExpressionType":"Alphabets"}];
        
function show(){
      CheckRegularExpression(MyRegEx);
}
<button onclick="show()" id="show">Show regex</button>

答案 1 :(得分:0)

[{"RegularExp":"[A-z]","ExpressionType":"Alphabets"}],[{"RegularExp":"[0-9]","ExpressionType":"Numbers"}]无效JSON;因此,您无法使用JSON.parse()解析它。它甚至不是一个有效的阵列。

答案 2 :(得分:0)

你有类似JSON(但实际上不是正确的JSON)字符串:

[
  {
    "RegularExp": "[A-z]",
    "ExpressionType": "Alphabets"
  }
],
[
  {
    "RegularExp": "[0-9]",
    "ExpressionType": "Numbers"
  }
]

要解析上面的字符串,您可以使用以下函数

function parse_my_json(string){
   return JSON.parse('[' + string + ']')
}

然后你可以访问这个json的每个元素:

parse_my_json(string).forEach(function(item){
   alert(item[0].RegularExp)
})

测试此解决方案:

  json_like_string = '[{"RegularExp": "[A-z]","ExpressionType": "Alphabets"}],[{"RegularExp": "[0-9]","ExpressionType": "Numbers"}]'        
    
function parse_my_json(string){
  return JSON.parse('[' + string + ']')
}

parse_my_json(json_like_string).forEach(function(item){
  alert(item[0].RegularExp)
})