Итерировать массив объектов на языке Liquid - PullRequest
0 голосов
/ 04 августа 2020

Я новичок в Liquid Language. У меня есть случай использования, когда я хочу l oop через массив объектов и распечатать некоторые значения.

Возможно, мой синтаксис неверен.

У меня есть массив объектов, как показано ниже . Я получаю эти данные из rest api. Я вставил сюда некоторую его часть.

assign htd_product_ids = 
     [
        {
            "id": 113608,
            "car_name": "Maruti Suzuki Alto K10 VXi",
            "mileage": 13479,
            "make_year": 2018,
            "final_price": 345000,
            "fuel_type": "petrol",
            "full_url": "http://www.spinny.com/buy-used-cars/hyderabad/maruti-suzuki/alto-k10/vxi-kondapur-2018/113608/"
        },
        {
            "id": 113011,
            "car_name": "Maruti Suzuki Celerio VXi AMT",
            "mileage": 25257,
            "make_year": 2016,
            "final_price": 413000,
            "fuel_type": "petrol",
            "full_url": "http://www.spinny.com/buy-used-cars/hyderabad/maruti-suzuki/celerio/vxi-amt-kondapur-2016/113011/"
        },
        {
            "id": 112609,
            "car_name": "Maruti Suzuki Swift Dzire ZXI",
            "mileage": 54600,
            "make_year": 2015,
            "final_price": 541000,
            "fuel_type": "petrol",
            "full_url": "http://www.spinny.com/buy-used-cars/hyderabad/maruti-suzuki/swift-dzire/zxi-kondapur-2015/112609/"
        }
     ]

Я хочу l oop через этот массив и напечатать car_name

{% for product in htd_product_ids %}
  {{forloop.index}}. {{product.car_name}}
{% endfor %}

forl oop .index работает нормально, но product.car_name не печатает название автомобиля.

Пожалуйста поправьте меня, если есть синтаксическая ошибка или что-то в этом роде.

1 Ответ

0 голосов
/ 05 августа 2020

Вы не можете присвоить json переменной. Это известная проблема с жидкостью.

Используя жидкую песочницу для тестирования (https://masterdatapoc.z6.web.core.windows.net/), вы используете правильный l oop, хотя json может быть неправильно:

Источник Json:

{"htd_product_ids":  [
        {
            "id": 113608,
            "car_name": "Maruti Suzuki Alto K10 VXi",
            "mileage": 13479,
            "make_year": 2018,
            "final_price": 345000,
            "fuel_type": "petrol",
            "full_url": "http://www.spinny.com/buy-used-cars/hyderabad/maruti-suzuki/alto-k10/vxi-kondapur-2018/113608/"
        },
        {
            "id": 113011,
            "car_name": "Maruti Suzuki Celerio VXi AMT",
            "mileage": 25257,
            "make_year": 2016,
            "final_price": 413000,
            "fuel_type": "petrol",
            "full_url": "http://www.spinny.com/buy-used-cars/hyderabad/maruti-suzuki/celerio/vxi-amt-kondapur-2016/113011/"
        },
        {
            "id": 112609,
            "car_name": "Maruti Suzuki Swift Dzire ZXI",
            "mileage": 54600,
            "make_year": 2015,
            "final_price": 541000,
            "fuel_type": "petrol",
            "full_url": "http://www.spinny.com/buy-used-cars/hyderabad/maruti-suzuki/swift-dzire/zxi-kondapur-2015/112609/"
        }
     ]}

Шаблон:

{% for product in htd_product_ids %}
  {{forloop.index}}. {{product.car_name}}
{% endfor %}

Вывод:

1. Maruti Suzuki Alto K10 VXi

2. Maruti Suzuki Celerio VXi AMT

3. Maruti Suzuki Swift Dzire ZXI
...