首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django:如何在html中遍历嵌套的Json对象

Django:如何在html中遍历嵌套的Json对象
EN

Stack Overflow用户
提问于 2018-07-31 03:56:15
回答 3查看 2.7K关注 0票数 0

我是第一次接触json,我在 view.py中有一个名为django jresult的嵌套json对象。我把这个对象传递给html,我想用html显示它。

在view.py中:

return render(request,'home.html', {'jresult': jresult})

jresult:

{
  "company": "xxx", 
  "address": "xxx", 
  "ceo": "xxx,
  "employee": {
      "Emily": {
        "id": "xxx", 
        "gender": "xxx"
      }, 
      "Tom": {
        "id": "xxx", 
        "gender": "xxx"
      }, 
      "Alex": {
        "id": "xxx", 
        "gender": "xxx"
      }, 
    },  
}

到目前为止,我只能循环遍历员工的名字,并将他们显示在html页面中:通过以下html代码显示:艾米丽、汤姆和亚历克斯:

{% for obj in jresult.employee %}
    <p>{{obj}}</p>
{% endfor %}

我已经尝试过了,我怎样才能同时访问id和性别呢?

{% for obj in jresult.employee %}
    <p>{{obj}}</p>
    {% for item in jresult.employee.obj.gender %}
        <p>{{item}}</p>
        {% endfor %}
{% endfor %}

但它不起作用。任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2018-07-31 04:38:47

JSON是一种嵌套结构,因此您应该能够使用简单的点符号来访问相对对象的属性。如果要像这样遍历employee字段,则必须将其作为数组,而不是对象:

试试这个:

{% for obj in jresult.employee %}
   <p>{{obj}}</p>
   <p>{{obj.id}}</p>
   <p>{{obj.gender}}</p>
{% endfor %}
票数 1
EN

Stack Overflow用户

发布于 2018-07-31 04:40:54

看看this (类似的请求),或者(如果它不能工作),您可以实现your own filter来将json转换成所需的形式

编辑:基本上你可以尝试

{{ jresult['employee'] }}

因为正如在第一个链接中所引用的,您在json中有字典。

票数 1
EN

Stack Overflow用户

发布于 2018-07-31 08:31:06

您可以执行{{ jresult‘’employee‘}},然后使用点符号来打印剩余的{{ jresult['employee']['Emily'].gender }},如果我没有记错的话,它应该打印性别。但是,这是不可维护的,因为它要求您在打印之前知道每个键的名称。

Django模板应该允许您这样做,因为json应该被视为python字典。

{% for employee_key, employee_value in jresult.employee %}
    <p>{{employee_key}}:{{employee_value}}</p>
{% endfor %}

参考:https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#for

除此之外,我可能只会编写一个序列化程序/转换器,在将数据发送到前端之前将其更改为可读模板。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51601390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档