[PHP/WSDL]JSON of XML string bij het versturen van data

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben bezig met een script dat gegevens uit de ene database haalt en opslaat in de andere database.
De gegevens zijn klant gegevens.
Omdat ik geen toegang heb vanuit de server van database 2 naar database 1 of andersom heb ik ervoor gekozen om een webservice te gebruiken.

Ik zeg dus op database server 2 tegen database server 1 (waar de wsdl file staat). geef mij alle nieuwe klanten.
Database 1 stuurt de gegevens op.

Nu wil ik de 'beste' manier hebben voor het versturen van de gegevens. Ik zou dat logischerwijs in een XML string kunnen versturen. Dat werkt. Alleen is mij een aantal keer gebeurd dat iemand een raar teken in de naam heeft. Mijn XML file werkte dan niet meer.
Dit kon ik vaak oplossen met een utf encoding toe tevoegen in de xml string.
code:
1
encoding="ISO-8859-1"

Maar dat lost niet alles op. Het gebeurt me soms nog steeds. Op het moment dat de XML string een raar teken bevat lukt het mij niet om de xml string in te lezen. FF en IE geven ook allebei een error als ik de XML string (opgeslagen in file) open.

Ik zat te kijken naar alternatieven. IK kwam hier bij JSON. Zover ik het begreep is dat in principe een object (array). Ik zou dus heel makkelijk een JSON object (string) kunnen maken. Die versturen en vervolgens alles wegschrijven in de database. Dan ben ik af van de problemen met de rare tekens.

Beide oplossingen werken. Mijn vraag is. Hoe denken jullie daarover. Is XML toch de beste manier of is JSON net zo goed of beter? _/-\o_

Jochemmol


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Jochemmol schreef op woensdag 02 juli 2008 @ 08:50:
Alleen is mij een aantal keer gebeurd dat iemand een raar teken in de naam heeft. Mijn XML file werkte dan niet meer.
Dit kon ik vaak oplossen met een utf encoding toe tevoegen in de xml string.
code:
1
encoding="ISO-8859-1"

Maar dat lost niet alles op. Het gebeurt me soms nog steeds. Op het moment dat de XML string een raar teken bevat lukt het mij niet om de xml string in te lezen. FF en IE geven ook allebei een error als ik de XML string (opgeslagen in file) open.
Je zegt dat je het met een UTF (8?) encoding op kan lossen, maar alsnog maak je er iso-8859-1 van :o
Je moet dan ook dezelfde encoding gebruiken als dat je in je database hebt staan, en deze encoding _ook_ in je Content-Type header meegeven.

Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Daar heb jij een punt.
Ik bedoelde niet UTF.
Het komt omdat ik in eerste instantie in php de utf functie gebruikte.

Jochemmol


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Jochemmol schreef op woensdag 02 juli 2008 @ 09:09:
Daar heb jij een punt.
Ik bedoelde niet UTF.
Het komt omdat ik in eerste instantie in php de utf functie gebruikte.
Het maakt niet uit welke encoding je gebruikt, als je overal maar dezelfde encoding gebruikt. Dus als je data in je database als iso-8859-1 is opgeslagen, dan is het handig om het ook met deze encoding te versturen. En dan kan er in principe niks misgaan (zolang je uiteraard tekens zoals <, > en & "escaped") en anders kan je altijd nog een CDATA blok gebruiken als het echt niet anders kan.

Kortom, klopt je encoding, en stuur je het correct (juiste headers etc).

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Overigens, als de opgegeven encoding niet klopt, dan maakt het al niet uit of je JSON of XML gebruikt, nadeel van JSON is dat je daar geen melding van krijgt en de kans is dus aanwezig dat je data corrupt is :)

Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
OK.
Dus het beste lijkt XML. Het kan wat ik wil en is gemakkelijk te maken.
Ik moet dus de juiste headers gebruiken om te voorkomen dat de XML corrupt raakt door rare tekens
Ik ga eens opzoek naar de mogelijkheden (welke headers, hoe voeg ik ze toe enz ).
Bedankt tot zover :D

Jochemmol

Pagina: 1