代码之家  ›  专栏  ›  技术社区  ›  Spike Williams

删除JSONObject中的引号

  •  9
  • Spike Williams  · 技术社区  · 16 年前

    我正在使用net.sf.json.JSONObject来创建一些数据以发送到前端应用程序,并且我正在与之交互的代码不喜欢在每个字段名中添加引号的方式。

    例如:

     myString = new JSONObject().put("JSON", "Hello, World!").toString();
    

    生成字符串{“JSON”:“Hello,World”}。

    我希望它返回的是{JSON:“Hello,World”}——在“JSON”周围没有引号。我该怎么做才能做到?

    5 回复  |  直到 16 年前
        1
  •  1
  •   Student    16 年前

    这个 javadoc

    toString产生的文本 sysntax规则。

    或者,如果您不关心规则,您可以创建自己的简单方法来构造这个字符串。

    同样,替换引号的2个第一次出现是有效的,正如@CharlesLeaf所说。

        2
  •  6
  •   catalpa    13 年前

    我遇到过一些web应用程序/库,比如amCharts,它们支持类似JSON的JavaScipt输入,而您的请求是必需的,因为不支持真正的JSON。

    您可以创建一个公共javascript函数,并使用一个小RegEx来过滤JSON。

    function CleanJSONQuotesOnKeys(json) {
        return json.replace(/"(\w+)"\s*:/g, '$1:');
    }
    
        3
  •  1
  •   CharlesLeaf    16 年前

    我能问你为什么要这么做吗?它不会节省请求中传输的总字节数的太多。

    /\"([^"]+)\"\:/ 第一场比赛 $1 . 我的Java语言不太流利,所以我实在帮不了什么忙。

        4
  •  1
  •   Fil    16 年前

    definition 将每一对描述为一个string:value,因此不能期望net.sf库违反该特定约定。如果您担心在返回到某些javascript代码时能够访问这些值(如果您正在这样做的话),那么就不必了。

    var str = {"JSON": "Hello, World"};
    var obj = eval(str);
    alert(obj.JSON); // Alerts "Hello, World"
    
        5
  •  0
  •   Jigar Parekh    13 年前

    net.sf.json.util.WebUtils.toString(JSONObject);

    参考java doc :