首页 > 解决方案 > 如何在 Django 模板中显示多层 JSON?

问题描述

所以我有这个 JSON 响应:

{
  "orders": [
    {
      "orderId": "4123456789",
      "dateTimeOrderPlaced": "2017-02-09T12:39:48+01:00",
      "orderItems": [
        {
          "orderItemId": "2012345678",
          "ean": "0000007740404",
          "cancelRequest": false,
          "quantity": 10
        }
      ]
    }
  ]
}

.json()我用这个方法在我的视图中传递了它。我在我的模板中使用它:

{% for key, value in orders.items %}
    {{ key }}: {{ value }}
{% endfor %}

我在我的 HTML 中得到了这个:

orders: [{'orderId': '2529081520', 'dateTimeOrderPlaced': '2019-09-07T00:12:16+02:00', 'orderItems': [{'orderItemId': '2298728074', 'ean': '8945005881389', 'cancelRequest': False, 'quantity': 1}]}]

但是如何进一步剖析呢?例如获取OrderIdean?

标签: djangodjango-templatesdjango-views

解决方案


您可以使用模板变量点符号访问字典项,如下所示

{% for order in orders.orders %}
    {{ order.orderId }}
    {% for item in order.orderItems %}
    {{ item.ean }}
    {% endfor %}
{% endfor %}

假设上下文变量orders包含您解析的 JSON,此模板将呈现如下:

OrderId: 4123456789

EAN: 0000007740404

推荐阅读