[英]unable to parse json string using java script eval function
我在 javascript eval 函數中遇到以下 Json 響應對象的問題;由於特殊字符Tamás和Török,預計會出現 Java 腳本錯誤 }
{
[{
"userFirstNm": "Naresh",
"userAsscId": "70336",
"userLastNm": "Yashwantrao",
"userLanId": "a70336"
}, {
"userFirstNm": "Tamás",
"userAsscId": "37732",
"userLastNm": "Török",
"userLanId": "a37732"
}]
}
是否有任何解決方案可以解決此問題。
啊我知道問題是什么。 您需要將對象表達式括在括號中才能使eval
正常工作。
alert(eval("({\"userFirstNm\":\"Tamás\",\"userAsscId\":\"37732\",\"userLastNm\":\"Török\",\"userLanId\":\"a37732\"})"));
這本身不是 JavaScript 語句,因此您將無法對其進行評估。
這個 Perl 程序在 SpiderMonkey 中運行 JavaScript:
use warnings;
use strict;
use JavaScript::SpiderMonkey;
my $stuff = '{"userFirstNm":"Tamás","userAsscId":"37732","userLastNm":"Török","userLanId":"a37732"}';
my $stuff2 = "var k = new Object ($stuff)";
my $js2 = JavaScript::SpiderMonkey->new();
$js2->init(); # Initialize Runtime/Context
my $rc2 = $js2->eval($stuff2);
print "$@\n";
這不會打印任何錯誤消息。
下列:
my $js = JavaScript::SpiderMonkey->new();
$js->init(); # Initialize Runtime/Context
my $rc = $js->eval($stuff);
print "$@\n";
產生
Error: SyntaxError: invalid label at line 1: {"userFirstNm":"Tam��s","userAsscId":"37732","userLastNm":"T��r��k","userLanId":"a37732"}
將字符串放入一個變量中,然后將其放入一個var中
var str = '{"userFirstNm":"Tamás","userAsscId":"37732","userLastNm":"Török","userLanId":"a37732"}';
eval("var obj=" + str);
console.debug ? console.debug(obj) : alert(obj); //outputs the object
一個更安全的替代方法是 json_parse 函數: http : //www.json.org/json_parse.js ;
var obj = json_parse('{"userFirstNm":"Tamás","userAsscId":"37732","userLastNm":"Török","userLanId":"a37732"}');
console.debug ? console.debug(obj) : alert(obj); //outputs the object
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.