• JS中字符串带双引号,导致parseInt为NaN


    在后端返回一个字符串

    .......

    String str =.....

    res = JSONObject.toJSONString(str);

    前端 获取之后,打印出来是"5193",用parseInt获取之后一直是NaN,找了好一会儿,打印出来类型是string,转换还是失败。最后才发现,比正常的字符串多了一个双引号。

    解决方法是: parseInt(res.replace(""","")), 把双引号去了之后,再转换就没有报错了。

    追根溯源,发现这个问题的根本实际上是在后端:

    我从JSON对象中得到了字符串,然后将字符串转换为JSON字符串(历史代码问题,改了上面没改下面),赋值给全局变量,所以才会出现这种问题。如果直接返回正常的字符串,是不会有这种问题的。

    错误代码:

    String res = "";
    try{
         String retmsg = ofs.requestAPI(apiGateway);
         String str = JSONObject.parseObject(retmsg).getJSONObject("data").getString("datastr");
        res = JSONObject.toJSONString(str);
    }catch(){
          e.printStackTrace();
    }
    
    return res;
    

    正确代码:

    String res = "";
    try{
         String retmsg = ofs.requestAPI(apiGateway);
         String str = JSONObject.parseObject(retmsg).getJSONObject("data").getString("datastr");
        res = str;
    }catch(){
          e.printStackTrace();
    }
    
    return res;
  • 相关阅读:
    Static了解和复习继承。
    复习篇1.对象和封装
    第一章笔记
    A + B Problem II
    Number Sequence
    Fibonacci Again
    8615 快乐
    8635 气球
    大牛之路II
    8617 阶乘数字和
  • 原文地址:https://www.cnblogs.com/GritMVP/p/14360715.html
Copyright © 2020-2023  润新知