gpt4 book ai didi

javascript - JSON 解析 - 名称内的单引号

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:15 26 4
gpt4 key购买 nike

在 Django 模板中,我打印了这样的数据:

P.place = '{{place.json|safe}}';

然后在 JavaScript 文件中,我将这样分割它:

place = JSON.parse(P.place);

对于这样的数据一切都很好:

{"category": "Cars", "name": "Z"}

因为字符串看起来像这样:

P.place = '{"category": "Cars", "name": "Z"}'

因此,我可以使用接受字符串作为输入的 JSON.parse 方法解析它。

问题是当我得到这样的数据时:

{"category": "Cars", "name": "Wojtek's Z"}

因为 JSON 解析器的输入字符串看起来像这样:

'{"category": "Cars", "name": "Wojtek'

我无法在 JSON 字符串中转义单引号,因为这样 JSON 字符串就变得无效了。出于同样的原因,我无法用双引号替换周围的引号并转义 JSON 字符串中的双引号。

我的解决方案是这样的:

在 HTML 模板中:

P.place = {{place.json|safe}};

然后在 JavaScript 中

var place = JSON.stringify(P.place);
place = JSON.parse(place);

它有效,但恕我直言,这不是最佳解决方案。

如何更巧妙地解决这个问题?

最佳答案

我可以想到两种可能性:

创建一个 application/json 类型的脚本元素,将您的模板数据注入(inject)其中,然后读取其数据,例如。

<script id="place-json" type="application/json">
{{place.json|safe}}
</script>
<script type="application/javascript">
P.place = $('#place-json').text();
</script>

或者,在注入(inject)字符串之前手动转义单引号,例如。

simplejson.dumps(yourdata).replace("'", r"\'")

关于javascript - JSON 解析 - 名称内的单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com