Ik heb een loop van een json object waarvan ik het resultaat in een javascript bestand wil plaatsen.

Nu staat het volgende "hardcoded" in mijn javascript bestand:


var props = [{
      title : 'Bouwbedrijf van de Water',
        image : 'bbvdw.jpg',
        address : 'Polyanderweg 2, 3218 XT Heenvliet',
        position : {
            lat : 51.863010, // 51.8424513,
            lng : 4.235398 // 4.3307054
        },
        markerIcon : "marker-green.png"
    },{
      title : 'Bedrijfsnaam',
        image : 'snm.jpg',
        address : 'goudenregeplein 1, 1234 AB, Spijkenisse',
        position : {
            lat : 51.842451, // 51.8424513,
            lng : 4.332894 // 4.3307054
        },
        markerIcon : "marker-green.png"
    },{
      title : 'Taxi Overgaauw',
        image : 'taxi.jpg',
        address : '3214 LJ Zuidland',
        position : {
            lat : 51.822302, // 51.8424513,
            lng : 4.247739 // 4.3307054
        },
        markerIcon : "marker-green.png"
    },{
      title : 'Moree & Vermeer B.V.',
        image : 'moree.jpg',
        address : 'Ring 2 3212LS Simonshaven',
        position : {
            lat : 51.823013, // 51.8424513,
            lng : 4.290310 // 4.3307054
        },
        markerIcon : "marker-green.png"
    },{
      title : 'Molengraaf Makelaardij',
        image : 'molengraaf.jpg',
        address : 'Mr P.J. Oudweg 56 3214 XN Zuidland',
        position : {
            lat : 51.821451, // 51.8424513,
            lng : 4.259176 // 4.3307054
        },
        markerIcon : "marker-green.png"
    },
    {
      title : 'P. Vis B.V.',
        image : 'pvisbv.jpg',
        address : 'Drieëndijk 1a – 3218 LB Heenvliet',
        position : {
          lat : 51.857122, // 51.8418945,
          lng : 4.236260 // 4.3337659
        },
        markerIcon : "marker-green.png"
    }];



Dit wil ik dynamisch maken door een json object te loopen en het resultaat te returnen zodat ik nieuwe markers kan toevoegen via mijn cms.

Ik heb de volgende loop toegevoegd:


$.each( bedrijven, function( key, value ) {
      // console.log( key + ": " + value.plaats );
      bedrijvenlijst += `{
        title : '${value.title}',
          image : 'bbvdw.jpg',
          address : '${value.straat} ${value.plaats}',
          position : {
              lat : 51.863010, // 51.8424513,
              lng : 4.235398 // 4.3307054
          },
          markerIcon : 'marker-green.png'
      },`;
    });


Hoe kan ik binnen var props het resultaat laden van deze loop zodat uiteindelijk wanneer de browser het bestand uitvoerd, de lijst uit de loop wordt gelezen? Kortom, hoe kan ik bedrijvenlijst laden binnen var props?

Ik heb het volgende al geprobeerd:


var props = [
    document.writeIn(bedrijvenlijst);
    {
      title : 'P. Vis B.V.',
        image : 'pvisbv.jpg',
        address : 'Drieëndijk 1a – 3218 LB Heenvliet',
        position : {
          lat : 51.857122, // 51.8418945,
          lng : 4.236260 // 4.3337659
        },
        markerIcon : "marker-green.png"
    }];


Maar dit geeft een error op document.writeIn(bedrijvenlijst); met een unexpected token ;

Dit kan toch nooit zo moeilijk zijn?
Is het ook niet, maar kijk eens goed naar wat je aan het doen bent in je code. Je probeert in het samenstellen van een object een write te doen. Dat gaat natuurlijk niet. Daarnaast is het writeln, niet writeIn.
De l van L dus.
Daarnaast kom je misschien in de knoop met het volgende: de bedrijvenlijst is één grote string, geen array van objecten. Als je dit als JSON wilt gebruiken zul je dit eerst moeten parsen als JSON denk ik. En je zult iets moeten verzinnen voor die komma aan het einde, mogelijk loopt dat ook mis. Mogelijk werkt alles beter als je direct objecten toevoegt aan een groeiend array? En omdat dit JSON betreft moeten er wellicht om het geheel ook nog { accolades }. Ik denk dat je als je de opbouw iets anders aanpakt e.e.a. eenvoudiger wordt.

Reageren