在下面的代码中,我有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.
}
答案 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)
})