Forenindex » Programmierung/Entwicklung » PHP und MySQL » JSON in XML umwandeln

JSON in XML umwandeln

affiliator
Beiträge gesamt: 2

21. Okt 2019, 18:52
Bewertung:

gelesen: 5603

Beitrag als Lesezeichen
Hi, liebe Entwickler

Kann mir jemand helfen, dieses Script so anzupassen, dass die Daten in einem sauberen XML-Format anstatt im JSON-Format ausgegeben werden?


<?php
$url = 'https://cct.connects.ch/api/v1/index.php/partner/promotions';
$method = 'GET';
$privateHash = 'SXSezQj41tmhUAkOsYEKjPlGI1pPAo7LbzgEToVY3Uaf05GB6Wreh3zzYYPTlfYu';

$headers = array(
'Accept: application/json',
'Content-Type: application/json',
'lea-Public: BdOj1M3maDs6pOIYxecdO0eL2gT7Pbxp4s2OiI3VDLnc6IVsXh8TORDwYa13XWc6'
);

$data = json_encode(
array(
)
);

if( strlen( $data ) <= 2 )
$data = '';

//lea-Hash erstellen, es werden Kleinbuchstaben erwartet
$headers[] = 'lea-Hash: '. hash_hmac('sha256', $data, $privateHash);


$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);

switch($method) {
case 'GET':
break;
case 'POST':
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
break;
case 'PUT':
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
break;
case 'DELETE':
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'DELETE');
break;
}

$response = curl_exec($handle);
$code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
echo $code . '<br />'; //Status Code der API
echo '<pre>' . print_r( json_decode( $response ), 1 ) . '</pre>';

JSON in XML umwandeln

crisies
  
Beiträge gesamt: 114

23. Okt 2019, 03:22
Bewertung:

gelesen: 5548

Beitrag als Lesezeichen
Hi affiliator,

Evtl. solltest Du direkt den JSON Code (mit Beispiel Daten) anstatt dem Private-KEY etc. posten ;)

Generell müsstest Du via json_decode() zuerst ein "normales" PHP-Array aus dem JSON-String machen und danach dieses via simpleXML oder eigener Funktion nach XML umwandeln.

Suche mal nach php Array2XML. Dazu findest Du einfachste Funktionen sowie ganze Klassen oder Projekte bei GIT, jenachdem wie dein JSON-String oder das daraus resultierende Array daher kommt und deine Anforderungen an das XML angeht, geht das Eine oder Andere...

lg
chris.w.

*************************************
Chris Würsch
http://www.chriswuersch.com
*************************************

JSON in XML umwandeln

affiliator
Beiträge gesamt: 2

23. Okt 2019, 11:00
Bewertung:

gelesen: 5456

Beitrag als Lesezeichen
Hi Chris

Danke für den Hinweis betr. Private Key... Habe auf Deinen Hinweis hin die API Keys erneuert, damit niemand mit meinem Code Unfug treiben kann...

Kannst Du mir evt. etwas genauer sagen, wo und wie ich die Funktion json_decode() in diesem Script einbauen muss?

Ich habe dies früher schon mal versucht, aber meine diletantischen Versuche waren leider nicht erfolgreich...

JSON in XML umwandeln

crisies
  
Beiträge gesamt: 114

29. Okt 2019, 03:28
Bewertung:

gelesen: 5184

Beitrag als Lesezeichen
hi affiliator,

Du hast den Befehl eigentlich ganz unten bereits in deinem Script eingebaut:

Code
echo '<pre>' . print_r( json_decode( $response ), 1 ) . '</pre>'; 


Nun müsstest Du anstatt das print_r etc. das von json_decode gelieferte Ergebniss nach XML umwandeln. Salop gesagt:

Code
array2xml(json_decode( $response )) 

Das geht so natürlich nicht, geht ja aber um die Idee und hoffe Du verstehst was ich meine.

lg
chris.w.

*************************************
Chris Würsch
http://www.chriswuersch.com
*************************************