zoukankan      html  css  js  c++  java
  • 解决JavaScript使用eval构建json数据时的引号问题

    碰到一个JavaScript的eval问题,大概有这么一段代码

    function buildRequestJson(key, value) {
        return JSON.stringify(eval('({"'+ key +'": "'+ value +'"})'));
    }
    

      上面这段代码如果传入一个带字符串的key或者value时,就会报错

    let key = "this is key";
    let value = '{"name":"abc"}';
    
    buildRequestJson(key, value);  // 报错
    

      上面的value因为有内容中包含双引号,在执行eval时,与eval中的双引号形成了冲突,所以会报错;

      通常的做法是双引号和单引号混合并进行转移,虽然这样也能处理,但是总感觉很牵强。

    其实可以另外一个做法,就是向一个空的json中放入key-value即可,这样就不用管key或者value是否有单双引号了

      比如下面这样

    function buildRequestJson(key, value) {
        let data = {};      // 创建一个新的空json对象
        data[key] = value;  // 然后将key-value设置进去即可
        return JSON.stringify(data);
    }
    

      再次使用上面的那些数据,就不用担心单双引号的问题了,也不用去做转义。

      

      原文地址:https://www.cnblogs.com/-beyond/p/14552832.html

    如需转载,请注明文章出处,谢谢!!!
  • 相关阅读:
    WebView与 JS 交互方式
    ES6常用知识点
    Flash Builder 破解与开发环境配置
    如何修改默认浏览器
    基本数据类型和常用内建对象
    VS 2010 使用技巧
    javascript之事件驱动编程的几个基本概念
    javascript笔记之DHTML基础
    浏览器对象模型
    开发心得记录
  • 原文地址:https://www.cnblogs.com/-beyond/p/14552832.html
Copyright © 2011-2022 走看看