【JS&JSON】JSON对象取值a,和字符串a比较不相等
-
【问题】
JSON对象取值
"succeeded"
和字符串常量"succeeded"
判断相等为false。代码:
var obj = JSON.parse(data);//JSON字符串转对象 var stat = "\""+obj.submitStatus+"\""; console.log(typeof(stat)); console.log(stat); console.log(stat.trim() == "succeeded"); console.log(encodeURIComponent(stat).trim()); if (stat =="succeeded") { ... } else if (stat =="failed") { ... }
-
【解决】
我在取值时多加了一对引号
var stat = "\""+obj.submitStatus+"\"";
浏览器打印出来是这样的。我以为字符串打印出来应该就是有引号的,所以没觉得有问题,但实际上打印没有引号。
应该是下面这样。
var stat = obj.submitStatus;
所以,这就是为什么判断为不相等。
- 【后注】和之前的问题(JSP定义变量,JS中用
<%=%>
输出赋值给变量)搞混了,那个是要加引号的。