Проблема при разборе строки JSON

Я сбрасываю JSON в Django view, а затем разбираю JSON в JS для получения данных.

Мой view.py (Django)

ibms = []
for i in range(2, 5):
    ibm = Mapa(i, wsMapa)
    ibms.append(ibm.__dict__)
ibms = json.dumps(ibms)

return render(request, 'mapas/index.html', {'ibms': ibms})

Вывод переменной ibm в шаблоне Django имеет вид:

[{"numeroIbm": "AUTO P"}, {"numeroIbm": "PTB"}, {"numeroIbm": "FAROL"}]

Мой index.html (JS внутри)

{{ ibms|json_script:"ibms" }}
<script>
    const mydata = JSON.parse(document.getElementById("ibms").textContent);
    const mydata2 = JSON.parse(mydata);
</script>

Проблема в следующем: Мне приходится дважды JSON.parse, чтобы получить JS объект. Переменная mydata, несмотря на JSON.parse, является string typeof. Я получаю конечный результат только тогда, когда JSON.parse во второй раз (mydata2).

Что происходит, пожалуйста?

Заранее спасибо!

Вы не должны сбрасывать его в представление, поэтому:

ibms = [Mapa(i, wsMapa).__dict__ for i in range(2, 5)]

return render(request, 'mapas/index.html', {'ibms': ibms})

и, таким образом, разбираем его как:

{{ ibms|json_script:"ibms" }}
<script>
    const mydata = JSON.parse(document.getElementById("ibms").textContent);
    // no second parse
</script>
Вернуться на верх