如何使用Javascript将字典列表解析为JSON格式?

2024-06-16 11:10:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解析JSON格式的字典列表,以便可以使用它们的数据创建一组列表项,其中文本和id是使用这些数据生成的。我将以下内容传递到我的网页,并在提供之前将其隐藏在一个隐藏的div中:

   [{'text': 'org1', 'id': 'org1ID'}, 
    {'text': 'org2', 'id': 'org2ID'}, 
    {'text': 'org3', 'id': 'org3ID'}]

我这样做是因为可以通过使用ajax执行查找将数据添加到客户机上,并且相同的ui元素将能够使用基于订阅的观察者可观察模型查看不同的数据集。在

Firebug显示它成功地呈现为:

^{pr2}$

当我尝试JSON.parse()关于此分区的内容,我返回以下消息:

JSON.parse: expected property name or '}'

如果我移除JSON.parse()我得到了一个li元素的列表,但未定义为值,并且它们的数量也与预期的不匹配:

<li id="Undefined">Undefined</> <!-- Repeated a number of times equal to char lengh of div html -->

请注意,如果上面还没有告诉你,我正在尝试重复我的列表,并从每个dict中提取信息

我也试过了JSON.stringify()对数据进行分析,但这似乎只会将数据转换为字符串,在我逐步执行时如下所示:

"[{'text': 'org1', 'id': 'org1ID'}, {'text': 'org2', 'id': 'org2ID'}, {'text': 'org3', 'id': 'org3ID'}]" <!-- The difference is that double qoutes have been injected. -->

更让我恼火的是,至少对我来说,如果我真的硬编码这个数据的关联数组部分(Javascript会看到它),那么它就可以正常工作了。然而,为了做到这一点,我不得不牺牲我当前设计的灵活性。除了更多的客户端处理之外,最突出的缺点是无法将数据结构从服务器返回。在

有谁能提供一些见解,或者也许是一个我可能忽视的解决方案?这是在js中使用JSON的常见问题吗?在

更新

我发现硬编码工作方式不同的原因是python或Jinja2将我的数据结构转换为使用单引号而不是双引号,但是在客户机上输入它会绕过python。在这一点上,我相信这是python,因为在eclipse上单步执行会显示一个引用的dict列表。在


Tags: 数据textdividjson元素列表客户机
1条回答
网友
1楼 · 发布于 2024-06-16 11:10:48

有效的JSON字符串直接表示javascript数组/对象,根本不需要任何解析。只需将其直接输出到脚本标记内的javascript变量:

<script>
var json_array = [{'text': 'org1', 'id': 'org1ID'}, 
    {'text': 'org2', 'id': 'org2ID'}, 
    {'text': 'org3', 'id': 'org3ID'}];
</script>

您的数据将自动保存在javascript数组中,无需解析。在

相关问题 更多 >