关于javascript中eval的一个问题
多谢各位。以下是正确的问题:关于javascript中eval的一个问题,javascript,Javascript,多谢各位。以下是正确的问题: { "VID":"60", "name":"\u4f1a\u9634", "requireLevel":"20", "levelMax":"5", "venationRequirement":"0", "description":"\u6c14\u6d77\u4e0a\u9650\u63d0\u9ad8[Affect1]\u70b9", "cost":{"1":"240","2":"360","3":"400"
{
"VID":"60",
"name":"\u4f1a\u9634",
"requireLevel":"20",
"levelMax":"5",
"venationRequirement":"0",
"description":"\u6c14\u6d77\u4e0a\u9650\u63d0\u9ad8[Affect1]\u70b9",
"cost":{"1":"240","2":"360","3":"400","4":"600","5":"720"},
"difficult":{"1":"1024","2":"973","3":"921","4":"870","5":"819"},
"affect":{"1":"200","2":"500","3":"900","4":"1400","5":"2000"},
"descriptions":{
"1":"\u6c14\u6d77\u4e0a\u9650\u63d0\u9ad8200\u70b9",
"2":"\u6c14\u6d77\u4e0a\u9650\u63d0\u9ad8500\u70b9",
"3":"\u6c14\u6d77\u4e0a\u9650\u63d0\u9ad8900\u70b9",
"4":"\u6c14\u6d77\u4e0a\u9650\u63d0\u9ad81400\u70b9",
"5":"\u6c14\u6d77\u4e0a\u9650\u63d0\u9ad82000\u70b9"
}
}
我在php中使用json_encode()和ajax请求来获取响应文本
但是当我使用eval()解析响应文本时。这是错误的。
moonshadow和james gregory在下面的评论中回答了这个问题。再次感谢。[]语法明确用于创建数组,而{}具有完全不同的含义(它认为您试图创建函数/块)[]语法明确用于创建数组,而{}具有完全不同的含义(它认为您正在尝试创建函数/块)您的第二个是错误的,因为您正在计算散列,要使其工作,您需要将其重写为如下内容:
var s = '{"first": {"a":1}, "second": {"b":2}}';
您的第二个是错误的,因为您正在评估散列,要使其正常工作,您需要将其重写为如下内容:
var s = '{"first": {"a":1}, "second": {"b":2}}';
如果第二个示例是尝试创建包含两个嵌套对象的对象,则缺少外部对象属性的名称,例如
var s='{“FirstSubObject”:{“a”:1},“SecondSubObject”:{“b”:2}}' 如果第二个示例是试图创建一个包含两个嵌套对象的对象,则缺少外部对象属性的名称,例如
var s='{“FirstSubObject”:{“a”:1},“SecondSubObject”:{“b”:2}}' Javascript对它在什么上下文中进行解析有点困惑。在将字符串传递给eval()之前,在前面加上“(”并附加“)”,以强制它将整个内容解析为表达式
(正如其他人所指出的那样,您提出的问题也缺少外部关联数组的标签,但是您的示例数据澄清了实际问题)。Javascript对它在什么上下文中解析的内容有点困惑。在将字符串传递给eval()之前,在前面加上“(”并附加“)”,以强制它将整个内容解析为表达式
(正如其他人所指出的那样,您提出的问题也缺少外部关联数组的标签,但是您的示例数据澄清了实际问题)。使用json是更好的解决方案。使用json是更好的解决方案