Hack json.dumps输出不带引号的字符串?

时间:2014-01-10 22:39:41

标签: javascript python json simplejson

我承认Python的json模块用于编写json。我正在使用该模块生成简单的Javascript代码(即,某些无效的json代码)。大多数情况下这没问题,但是我需要一种干净的方法来通过dumps传递变量名称。例如写一些类似的方法:

>>> json.dumps({"varName":F("varReference")})
'{"varName": varReference}'

但我无法弄清楚如何阻止json添加引号。我能想到的最好的是F用一些罕见的符号填充字符串,然后在dumps的输出上进行正则表达式替换。还有其他建议吗?我在jsonsimplejson中看到的所有内容都需要可序列化的json对象。

1 个答案:

答案 0 :(得分:0)

一种方法可能不是尝试在服务器端进行,而是始终与JSON通信,然后让JavaScript从这个JSON中找出如何构建最终对象。

  1. 将JavaScript输出为JSON地图"变量名称":"变量值"。

  2. 在JavaScript端评估变量值,方法是遍历对象键并根据" variableablue"解析每个键的新值。来自全局变量。

    Object.getOwnPropertyNames(obj).forEach(function(name, idx, array) {
            var varName = obj[name];
            obj[name] = window[varName]; // Evaluate variable value from global window scope 
    });)
    
  3. 例如,forEach()是EcmaScript 5,旧版浏览器可能需要填充。