我正在尝试使用eval()函数通过使用eval函数反序列化此JSON文本。
var personJSON = {"FirstName":"Burak","LastName":"Ozdogan","Id":"001"
,"Department":"Information Technologies"};
var personBurakOzdogan = eval('(' + personJSON + ')');
但是我收到了这个错误:
*Microsoft JScript compilation error: Expected ']'*
我跳过哪些东西是我无法捕捉到的?
由于
答案 0 :(得分:5)
你拥有的不是JSON文本。它已经是一个JSON对象。因此,您根本不需要使用eval
。您可以直接访问和操作其属性:
alert(personJSON.FirstName);
答案 1 :(得分:2)
尝试检查你的personJSON是否是包含真实json的包装器。例如,尝试写:
var person = eval('(' + personJSON.Person + ')')
其中Person
是服务序列化的类。
OR
试试这个:
var person = eval('(' + personJSON.GetPersonResult + ')')
其中GetPerson
是服务中的方法名称,加上Result
。
答案 2 :(得分:1)
你没有处理字符串,而是使用json对象。您正在尝试将json对象评估为字符串以创建json对象。
var personJSON =
'{"FirstName":"Burak","LastName":"Ozdogan","Id":"001","Department":"Information Technologies"}';
var personBurakOzdogan = eval('(' + personJSON + ')');
这应该有效,尽管它没有多大意义。这更有意义:
var personBurakOzdogan = {"FirstName":"Burak","LastName":"Ozdogan","Id":"001","Department":"Information Technologies"};
答案 3 :(得分:0)
您必须将变量作为字符串类型传递给下面的代码:
var personJSON = '{"FirstName":"Burak","LastName":"Ozdogan","Id":"001","Department":"Information Technologies"}';