Regel opnieuw goed tonen afzonderlijk van JSON file.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pascal Schuffelers

Pascal Schuffelers

10/02/2019 09:55:06
Quote Anchor link
Ik heb als test de volgende code geprobeerd.:

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
22
23
24
$mysqli1 = new mysqli('localhost','root','xxxxxx','xxxxxx');
                    $myArray1 = array();


                    if ($result1 = $mysqli1->query("SELECT RMFR,RMFRMin,RMFRMax FROM specsv1 where RNaam = '$aCountries[$i]'")) {
                    $tempArray1 = array();


                    while($row1 = $result1->fetch_object()) {
                        $tempArray1 = $row1;
                        if(!$myArray1) $tempArray1; //alleen bij 1e record
                        array_push($myArray1, $tempArray1);
                        }

                      

                        print json_encode($myArray1)."</BR>";
                        $fp1 = fopen('resultstestMFRSPEC.json', 'w');
                        fwrite($fp1, json_encode($myArray1,JSON_NUMERIC_CHECK));
                        fclose($fp1);
                    }

                    $result1->close();
                    $mysqli1->close();


de regel die hij wegschrijft is bv.: [{"RMFR":"16.00","RMFRMin":"14.00","RMFRMax":"18.00"}]
deze word ook mooi in het scherm getoond en op de juiste wijze in de file.
Nu vroeg ik mij af of het mogelijk zou zijn op het geen dat hij in het scherm toont iets mooier te maken met bv. str_replace, dus had ik in bovenstaande code het volgende erbij geplaatst.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
//tekst mooier maken
 $newline = str_replace('[{"', '', $myArray1);
 print json_encode($newline )."</BR>";


echter hij blijft mij hetzelfde tonen er gebeurd niets met die lijn terwijl ik zou verwachten dat hij dan dit zou moeten tonen.: RMFR":"16.00","RMFRMin":"14.00","RMFRMax":"18.00"}]

Wat zie ik over het hoofd?
Want wat ik eigenlijk wil zien is dit RMFR=16.00 RMFRMin=14.00 RMFRMax=18.00
Gewijzigd op 10/02/2019 10:26:52 door Pascal Schuffelers
 
PHP hulp

PHP hulp

28/03/2024 17:40:02
 
- Ariën  -
Beheerder

- Ariën -

10/02/2019 10:34:31
Quote Anchor link
Huh? Ga je nu zelf json uit elkaar rafelen?!?

Kijk eens naar json_decode. Dat is precies wat je wilt. Die maakt er een array van die je dan kan uitlezen.

Dan heb je al die frutsels van dubbele punten, komma's en haakjes niet meer.
Gewijzigd op 10/02/2019 10:36:49 door - Ariën -
 
Pascal Schuffelers

Pascal Schuffelers

10/02/2019 10:41:48
Quote Anchor link
oke zal eens kijken. thx.
 
- Ariën  -
Beheerder

- Ariën -

10/02/2019 10:44:06
Quote Anchor link
Okee, met het tijdelijk gebruik van print_r over json_decode heen moet je tijdens het ontwikkelen een beeld krijgen van de array.
 
Pascal Schuffelers

Pascal Schuffelers

10/02/2019 11:01:13
Quote Anchor link
Als ik het volgende probeer , zie ik niks.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
      $json = '[{"RMFR":"16.00","RMFRMin":"14.00","RMFRMax":"18.00"}]';

$obj = json_decode($json);
print $obj->{'RMFR'}."</BR>";
print $obj->{'RMFRMin'}."</BR>";
print $obj->{'RMFRMax'}."</BR>";


echter laat ik dit weg [ in het begin en op het einde dit ], dan zie ik wel mooi de waarden.
hoe moet ik dat dan oplossen?
 
- Ariën  -
Beheerder

- Ariën -

10/02/2019 11:04:06
Quote Anchor link
$obj = json_decode($json,true);
print_r($obj);

Wat is de output dan?
Gewijzigd op 10/02/2019 11:05:00 door - Ariën -
 
Pascal Schuffelers

Pascal Schuffelers

10/02/2019 11:08:21
Quote Anchor link
Als ik dat probeer zie ik dit.: Array ( [0] => Array ( [RMFR] => 16.00 [RMFRMin] => 14.00 [RMFRMax] => 18.00 ) )
Schijnbaar ben ik te stom hiervoor , meende het op te kunnen lossen met replace optie's.
Ik zoek anders wel ff verder via google, kan mij niet zo moeilijk lijken maar....
 
- Ariën  -
Beheerder

- Ariën -

10/02/2019 11:09:22
Quote Anchor link
Je hebt een array. Probeer die dan eens uit te lezen of anders in die materie te verdiepen.

'Replace' is nooit een oplossing als je bestaande format wilt uitlezen. Wat je kan formatteren aan data kan je ook weer ontformatteren.
Gewijzigd op 10/02/2019 11:11:47 door - Ariën -
 
Pascal Schuffelers

Pascal Schuffelers

10/02/2019 16:16:31
Quote Anchor link
Nou ben al de halve middag bezig met mijn array die zo eruit gehaald word.: Array ( [0] => Array ( [RMFR] => 16.00 [RMFRMin] => 14.00 [RMFRMax] => 18.00 ) )

Echter krijg ik wel complete array eruit gehaald maar meer ook niet.
Niet wat ik wil weer zo een mooie indeling van bv RMFR=16.00 RMFRMin=14.00 RMFRMax=18.00
 
Thomas van den Heuvel

Thomas van den Heuvel

10/02/2019 17:05:28
Quote Anchor link
Je krijgt alle relevante informatie in een net format aangeleverd.

Ik weet niet wat je nog meer verwacht?

De rest (afhandeling hiervan) zul je toch echt zelf voor elkaar moeten breien.
 
- Ariën  -
Beheerder

- Ariën -

10/02/2019 17:07:14
Quote Anchor link
Ben je bekend met array's?
 
Thomas van den Heuvel

Thomas van den Heuvel

10/02/2019 17:11:05
Quote Anchor link
@Pascal, lees je weleens andere draadjes op dit forum of ben je alleen met je eigen vraagstukken bezig? Daar ligt namelijk (zij het met enige verbeelding) de oplossing voor het oprapen.
Gewijzigd op 10/02/2019 17:15:37 door Thomas van den Heuvel
 
Pascal Schuffelers

Pascal Schuffelers

10/02/2019 17:20:51
Quote Anchor link
Nou ik zoek via google en die komt met een hoop voorbeelden, waar je wel of geen nut aan hebt, dus ja ik zoek erg vaak om te weten hoe het moet, hoe het in elkaar steekt enz.
Dus ik vind het knap vervelend als ik word beschouwd als iemand die antwoorden wil zien.
Als ik nu zou zeggen , dat ik alleen antwoorden wil zien, zonder dat ik zelf eens een code voorbeeld neerzet, dan kan ik dat wel begrijpen, maar ik plaats ze wel en probeer ook en als ik het plaatst dat ik het niet weet, dan heb ik het ook geprobeerd.

@Ariën ja voor een gedeelte wel.
Echter ik zit met die rare tekens [{ die krijg ik niet eruit gefilterd.

Net als de volgende code , die werkt als ik de waarde erin stop maar lees ik die uit myarray gebeurd niks.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$json1 = '[{"Datum":"10-2-2019 01:38:00","MVRml10ml":1.255,"valueField":"MVRml10ml"},{"Datum":"10-2-2019 03:28:35","MVRml10ml":1.253},{"Datum":"10-2-2019 05:25:43","MVRml10ml":1.268},{"Datum":"10-2-2019 10:37:47","MVRml10ml":1.276},{"Datum":"10-2-2019 12:40:12","MVRml10ml":1.318},{"Datum":"10-2-2019 14:33:35","MVRml10ml":1.29},{"Datum":"23-01-2019 05:49:29","MVRml10ml":1.325},{"Datum":"28-01-2019 11:32:04","MVRml10ml":1.342},{"Datum":"28-01-2019 13:37:24","MVRml10ml":1.358},{"Datum":"28-01-2019 15:43:53","MVRml10ml":1.33},{"Datum":"28-01-2019 18:30:41","MVRml10ml":1.311},{"Datum":"28-01-2019 19:16:03","MVRml10ml":1.284},{"Datum":"28-01-2019 21:37:41","MVRml10ml":1.266},{"Datum":"28-01-2019 23:59:42","MVRml10ml":1.301},{"Datum":"29-01-2019 02:19:28","MVRml10ml":1.3},{"Datum":"29-01-2019 03:52:47","MVRml10ml":1.286},{"Datum":"29-01-2019 06:22:53","MVRml10ml":1.263},{"Datum":"5-2-2019 21:30:42","MVRml10ml":1.27},{"Datum":"9-2-2019 12:20:03","MVRml10ml":1.238},{"Datum":"9-2-2019 14:08:09","MVRml10ml":1.251},{"Datum":"9-2-2019 16:10:19","MVRml10ml":1.187},{"Datum":"9-2-2019 18:27:41","MVRml10ml":1.203},{"Datum":"9-2-2019 20:25:44","MVRml10ml":1.21},{"Datum":"9-2-2019 22:24:50","MVRml10ml":1.19},{"Datum":"9-2-2019 23:55:16","MVRml10ml":1.281}]';

$waarde= json_decode($json1);
// access property of object in array
echo "MVRml10ml = ".$waarde[1]->MVRml10ml."</BR>";
 
- Ariën  -
Beheerder

- Ariën -

10/02/2019 17:27:11
Quote Anchor link
Zucht :p
Je MOET niet filteren. Alleen je array uitlezen!

Je hebt een array die '0' als index, en een waarde met RMFRMin etc....
 
Adoptive Solution

Adoptive Solution

10/02/2019 17:31:56
Quote Anchor link
Ik krijg bij de echo dit te zien :

MVRml10ml = 1.253
 
Thomas van den Heuvel

Thomas van den Heuvel

10/02/2019 17:35:44
Quote Anchor link
Why do I even bother?

Speel eens wat met het volgende:
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
<?php
header('Content-Type: text/html; charset=UTF-8');

function
dump($in) {
    if (is_array($in)) {
        $in = print_r($in, true);
    }

    echo '<pre>'.escape($in).'</pre>';
}

function
escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}


$json = '[{"Datum":"10-2-2019 01:38:00","MVRml10ml":1.255,"valueField":"MVRml10ml"},{"Datum":"10-2-2019 03:28:35","MVRml10ml":1.253},{"Datum":"10-2-2019 05:25:43","MVRml10ml":1.268},{"Datum":"10-2-2019 10:37:47","MVRml10ml":1.276},{"Datum":"10-2-2019 12:40:12","MVRml10ml":1.318},{"Datum":"10-2-2019 14:33:35","MVRml10ml":1.29},{"Datum":"23-01-2019 05:49:29","MVRml10ml":1.325},{"Datum":"28-01-2019 11:32:04","MVRml10ml":1.342},{"Datum":"28-01-2019 13:37:24","MVRml10ml":1.358},{"Datum":"28-01-2019 15:43:53","MVRml10ml":1.33},{"Datum":"28-01-2019 18:30:41","MVRml10ml":1.311},{"Datum":"28-01-2019 19:16:03","MVRml10ml":1.284},{"Datum":"28-01-2019 21:37:41","MVRml10ml":1.266},{"Datum":"28-01-2019 23:59:42","MVRml10ml":1.301},{"Datum":"29-01-2019 02:19:28","MVRml10ml":1.3},{"Datum":"29-01-2019 03:52:47","MVRml10ml":1.286},{"Datum":"29-01-2019 06:22:53","MVRml10ml":1.263},{"Datum":"5-2-2019 21:30:42","MVRml10ml":1.27},{"Datum":"9-2-2019 12:20:03","MVRml10ml":1.238},{"Datum":"9-2-2019 14:08:09","MVRml10ml":1.251},{"Datum":"9-2-2019 16:10:19","MVRml10ml":1.187},{"Datum":"9-2-2019 18:27:41","MVRml10ml":1.203},{"Datum":"9-2-2019 20:25:44","MVRml10ml":1.21},{"Datum":"9-2-2019 22:24:50","MVRml10ml":1.19},{"Datum":"9-2-2019 23:55:16","MVRml10ml":1.281}]';

dump(json_decode($json, true));
?>

Dat is je structuur.

Brei hiermee een foreach ofzo.

Succes.
 
Pascal Schuffelers

Pascal Schuffelers

10/02/2019 18:14:54
Quote Anchor link
Ik snap wat jullie bedoelen.
Mijn vraag nu is....

in deze code.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$json2 = $myArray;
 $json1 = '[{"RMFR":"0.80","RMFRMin":"0.55","RMFRMax":"1.05"}]';


waarom zie ik wel de data van $json1 als ik die wil tonen , maar waarom zie ik die van $json2 niet?
 
- Ariën  -
Beheerder

- Ariën -

10/02/2019 18:19:28
Quote Anchor link
Wat wil je nu? De data als array gebruiken? Gebruik dan true in json_decode.

En wat doet $myArray?
Gewijzigd op 10/02/2019 18:21:16 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

10/02/2019 19:06:18
Quote Anchor link
$json1 is een string in het JSON-formaat.

$json2 is (waarschijnlijk?) een array. (uit dat oogpunt is de naamgeving voor deze variabele ook niet echt fantastisch...)

Op het moment dat je data naar output stuurt gebeurt dit doorgaans (altijd?) in string-formaat. Je kunt een array niet direct weergeven.
 
Nick Vledder

Nick Vledder

12/02/2019 10:45:35
Quote Anchor link
@Pascal verdiep je ook even in het doel van JSON. Dit formaat is niet in het leven geroepen om 'ns te gaan verwerken in PHP. Tenminste, niet anders dan na een json_decode.

(Tip: de JS staat voor JavaScript, de taal van de browsers.)
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2019 17:26:04
Quote Anchor link
Wat @Nick zegt klopt, ik had het oorspronkelijke bericht niet goed gelezen.

JSON is een gegevensformaat en is niet direct bestemd voor weergave maar is meer bedoeld voor makkelijke (en laagdrempelige) gestructureerde gegevensoverdracht, bijvoorbeeld als alternatief voor XML.

Je gebruikt JSON in principe nooit rechtstreeks om informatie weer te geven.

Een proces dat JSON afhandelt zal deze gegevens dus om moeten zetten in een (beter) leesbare variant. Dit omvat dus altijd een vertaalstap.
 



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.