gpt4 book ai didi

javascript - 如何使用 JSON 将数组从 Twig 传递到 Javascript

转载 作者:行者123 更新时间:2023-12-02 22:28:42 25 4
gpt4 key购买 nike

我需要你的帮助来创造奇迹。

我想将 Twig 数组转换为 Javascript 数组,然后在循环中使用它并为 Google API 创建标记。

<script>
var map, marker, i, e;
var companies = {{ companies.items | json_encode() | raw }};

console.log(companies);
var address = {{ search.city.first.name | json_encode() | raw }};

function initMap() {
var geocoder = new google.maps.Geocoder();

map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 44.8333, lng: -0.5667},
zoom: 12,
disableDefaultUI: true
});

//for (i = 0; i < locations.length; i++) {
//marker = new google.maps.Marker({
//position: new google.maps.LatLng(locations[i][1], locations[i][2]),
//map: map
//});

}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=APIKEYLOL&callback=initMap"></script>

当我取回数组时,公司向我显示一个空数组。

Screen of empty array of console.log(companies)

但是当我将其转储到 Twig 上时,我的数组没问题..

Dump array on Twig

有人可以帮助我吗?

最佳答案

json_encode 默认情况下将通过输出所有公共(public)(即可访问)属性来序列化对象。由于您的对象没有公共(public)属性,因此序列化为空。您可以实现 JsonSerializable界面。 (恕我直言,最简单的解决方案)

还有其他更复杂的方法可以实现此目的。如果 json 序列化会根据上下文而变化,它们就会变得相关......替代方案是实现一个 twig 函数,该函数将从对象中获取某些字段,编写适当的序列化程序或在对象上实现根据上下文公开正确序列化的函数.

关于javascript - 如何使用 JSON 将数组从 Twig 传递到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58979579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com