2016-01-30 64 views
0

在下面的代碼我有持有價值JSON變量要獲得的JSON值

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

當我嘗試警報正則表達式它顯示[Object,object],[Object,object]。當我試圖讓JSON解析值,它拋出不確定的。請幫助我解決了這個問題。

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

如果從'RegEx'更改參數名稱爲'batman',有何幫助?很確定'RegEx'是一個JS關鍵字。 – Err

+0

RegEx在JavaScript中沒有特別的含義。 'RegExp'另一方面呢。 – michael

回答

0

Alert函數僅接收字符串,並且它不能呈現對象,所以您必須傳遞字符串化的Object版本。

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

並且也不要混淆的人,你的對象不是單個對象,

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

它的兩個對象,所以基本上單個物體看起來像

[{"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>

0

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

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) 
 
})