Servus zusammen,
ich habe folgende Situation :
- Quellcode von Java leider nur teilweise verfügbar, darf außerdem nicht veröffentlicht werden. (evtl. in Teilen wenn ich namen unkenntlich mache)
- Ein PHP Backend, welches an das Java Programm Daten per JSON übergibt. Diese JSONS funktionieren bereits teilweise und sind immer in "data"
- Ein XML String, welchen ich in die JSON einfügen muss. Funktioniert ebenfalls teilweise (solang keine " oder ' vorhanden sind)
Nun muss ich eine Funktion bauen bei der ich nicht um die " herum komme.
Unten einige Tests die ich bereits gefahren habe und deren Ergebnisse. Natürlich sind das nur die, die ich mitgeschrieben hab.
Es wurde bereits weit mehr getestet als Dokumentiert. Es handelt sich um PHP.
//$val = "dasisteintestnurmiteinemstring"; Fehler in XMLWrapper - Content is not allowed in prolog
//$val = "<test></test>"; Fehler in XMLWrapper - Expected elements are timetable, interval
//$val = "<timetable><interval type=week><from>10</from><to>12</to></interval></timetable>"; Fehler in XMLWrapper - Open quote is expected for attribute type
//$val = "<timetable><interval type=\"week\"><from>10</from><to>12</to></interval></timetable>"; Fehler in ResponseWrapper - Unexpected Char 119 (w)
//$val = "<timetable><interval type=\\\"week\\\"><from>10</from><to>12</to></interval></timetable>"; Fehler in ResponseWrapper - Invalid token=EOF, expected are { [ STR NUM TRUE FALSE NUL]}
Im inneren des Java ist es wie folgt aufgebaut ResponseWrapper -> XMLWrapper -> werte setzen und Files schreiben.
Was ebenfalls getestet wurde :
- Anführungszeichen ganz weg lassen
- Mehr escapes
- Weniger escapes
- Alles in Unicode Character umwandeln was irgendwie komisch ist
- json encode in php (lasse ich aus gründen des leichteren verständnissses für die Tests grad weg)
Als Standartheader nutze ich :
header("HTTP/1.1 200 OK");
header('Content-Type: application/json; charset=utf-8');
Nachtrag 1 :
JSON response der PHP sieht ungefähr so aus (ist die Ausgabe des letzten Beispiels .... type=\\\"week\\\"><fr....)
{ "data" : "<timetable><interval type=\"week\"><from>10</from><to>12</to></interval></timetable>" } |