【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+"\"";

    浏览器打印出来是这样的。我以为字符串打印出来应该就是有引号的,所以没觉得有问题,但实际上打印没有引号。

    【JS&JSON】JSON对象取值a,和字符串a比较不相等_第1张图片


    应该是下面这样。

    var stat = obj.submitStatus;

    【JS&JSON】JSON对象取值a,和字符串a比较不相等_第2张图片

    所以,这就是为什么判断为不相等。


  • 【后注】和之前的问题(JSP定义变量,JS中用<%=%>输出赋值给变量)搞混了,那个是要加引号的。

你可能感兴趣的:(【JS&JSON】JSON对象取值a,和字符串a比较不相等)