我正在尝试使用eval()函数通过使用eval函数反序列化此JSON文本。
var personJSON = {
"FirstName": "Burak",
"LastName": "Ozdogan",
"Id": "001",
"Department": "Information Technologies"
};
var personBurakOzdogan = eval('(' + personJSON + ')');
但是我收到此错误:
*Microsoft JScript compilation error: Expected ']'*
我是否跳过了无法捕捉的内容?
谢谢
您拥有的不是JSON文本。它已经是一个JSON对象。因此,您根本不需要使用eval
。您可以直接访问和操纵其属性:
alert(personJSON.FirstName);
[尝试检查您的personJSON是否是包含真实json的包装。例如,尝试编写:
var person = eval('(' + personJSON.Person + ')')
其中Person
是服务序列化的类。
OR
尝试一下:
var person = eval('(' + personJSON.GetPersonResult + ')')
其中GetPerson
是服务中的方法名称,加上Result
。
您不是在处理字符串,而是在处理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"
};
您必须将字符串类型传递给变量,如下所示:
var personJSON = '{"FirstName":"Burak","LastName":"Ozdogan","Id":"001","Department":"Information Technologies"}';