【问题标题】:Is there a way to use something equivalent to json.dumps in javascript有没有办法在 javascript 中使用与 json.dumps 等效的东西
【发布时间】:2017-09-01 22:10:21
【问题描述】:

我正在为我的 django 模板提供一个对象列表。我有一个条件,我正在访问模板中的对象字段之一,该字段是一个包含 u' 字符的 json 字段,例如 {u'option': False, u'name': u'test string'}

我们通常在 python 中使用 json.dumps 将其转换为 {"option": False, "name": "test string"},这是我想要的正确 json,因为我需要在我的 javascript 中访问这样的字符串。

有没有一种简单的方法可以在 javascript 中做到这一点?我想避免使用正则表达式去除u' and ' 并替换为"

对不起,如果这是非常基本的。对javascript不太了解。

或者有没有办法从 python 以某种方式将我的对象字段编码为 to_json?

【问题讨论】:

    标签: javascript python json serialization stringify


    【解决方案1】:

    在 JavaScript 中相当于 Python 的 json.dumps()JSON.stringify(),如下所示:

    var jsonstr = JSON.stringify(someVariable);
    

    有效的 JSON 不包含像 u'something' 这样的结构,只有 "something"。如果你真的有这样的字符串,它很可能来自 Python 通过repr() 或类似的。

    如果您尝试将 Python 对象从它们各自的环境中转换为 JavaScript 对象,在 Python 中您可以使用 json.dumps() 将它们转换为 JSON 编码的字符串,将字符串传输到 JavaScript 环境,然后使用 @987654322 @ 将它们转换回对象。

    (请记住,除了字符串、浮点数、布尔值、数组和 key:value 结构等一些基本类型之外,JSON 不理解任何内容。例如,尝试传输 Python datetime 对象可能会得到您是字符串或集合键:值对而不是实际的 JavaScript Date 对象。)

    【讨论】:

    • 感谢您的回答。但我只是更新了我从 django 提供的服务。它更清洁,更容易做到。因为 JSON.stringify 没有从 Json 字段中删除 u'。所以无论如何都必须在 python 中处理。
    • 警告数组/列表,它们是不等价的。我发现这与列表中 python 的漂亮打印存在差异。 (当 Javascript 没有时,Python 默认会添加一些空间)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    相关资源
    最近更新 更多