json uitlezen in PHP werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Web Ontwikkelaar PHP, Nijmegen

Contactpersoon Roel Kavelaar rkavelaarATsearch-consult.nl 0243528815 0644949337 Organisatie Jong, gezond en sterk groeiende bedrijf dat webbased multimedia oplossingen bouwt in de omgeving Nijmegen. Het bedrijf bouwt voor klanten o.a. geavanceerde websites, webwinkels, webapplicaties en specifieke webbased software. Het bedrijf ontwikkelt en onderhoudt ook verschillende bekende Nederlandse websites. Op dit moment hebben zij een groeiende en brede klantenkring opgebouwd. Met betrekking tot programmeer-, onderhoud-, ontwerp-werkzaamheden wordt een PHP ontwikkelaar gezocht met kennis van contentmanagementsysteemen en frameworks. Locatie Nijmegen Verantwoordelijkheden (Her)Ontwerpen en (her)ontwikkelen in PHP ten behoeve van websites voor klanten, project klussen, onderhoud en specifieke klantwensen (Her)Ontwerpen en (her)ontwikkelen in PHP, PHP

Bekijk vacature »

Daniel van Seggelen

Daniel van Seggelen

08/02/2018 20:37:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
    "profiles": {
        "0": {
            "profiletoken": "73E327BEA-B550-4F73-831F-",
            "age": {
                "description": "Leeftijd",
                "answer_type": "numeric_value",
                "answerdata": "28"
            },
            "nickname": {
                "description": "Profielnaam",
                "answer_type": "text",
                "answerdata": "SlamDunk-1981"
            },
        "1":
            "nickname": {
                "description": "Profielnaam",
                "answer_type": "text",
                "answerdata": "stefann2"
            }
}


De data is gevuld met dit soort json data:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$characters = json_decode($data,true); // decode the JSON feed
var_dump($characters);
foreach ($characters as $character) {
//    echo print_r($character);
    echo $character['profiles'][1];
}


Maar de loop zegt :

"e: Undefined index: profiles in"

Ik snap er niks meer van
 
PHP hulp

PHP hulp

22/02/2019 14:43:55
 
- Ariën -
Beheerder

- Ariën -

08/02/2018 20:41:36
Quote Anchor link
En wat zegt de var_dump dan?
 
Jeroen Jansen

Jeroen Jansen

09/02/2018 09:11:54
Quote Anchor link
Volgens mij mis je een s bij de echo. $character in plaats van $characters
 
- Ariën -
Beheerder

- Ariën -

09/02/2018 09:18:59
Quote Anchor link
@Jeroen: Nee, want in een foreach wil je de array doorlopen. En voor elke iteratie wordt dan $character gebruikt.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/02/2018 11:19:06
Quote Anchor link
Een beetje opmerkelijk is dat de json enkel uit objecten bestaat en dat er geen array's in voorkomen. Aangezien het eerste element key/id "0" heeft denk ik ook niet dat dit het database id is. Waarschijnlijk kun je in PHP de array wel gewoon doorlopen met een foreach. Echter begint de JSON niet met een "numerieke array" maar met een object "profiles". Je zou de foreach met deze kunnen "starten".

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$data
= json_decode($data,true); // decode the JSON feed

foreach($data['profiles'] as $profiles) {
    echo $profiles['nickname']['answerdata'];
}

?>


Toevoeging op 09/02/2018 11:25:34:

Edit:

Aangezien de data niet erg consistent lijkt zou ik elk element in de array tevens eerst controleren met isset() of deze wel bestaat en een andere waarde dan NULL heeft.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.