Toon posts:

[Mobile App Development] XML of JSON?

Pagina: 1
Acties:

  • Rubinski
  • Registratie: Maart 2009
  • Laatst online: 25-10-2018

Rubinski

Dodelijk blond!

Topicstarter
Dag iedereen

Ik ben van plan om een app te maken voor een website. Er moet data van de server gehaald worden, maar ik weet niet voor welke manier ik best opteer. Ik ben er vrij zeker van dat het zowel met json als xml gaat, maar ik zoek nog naar de "beste" manier.

Ik heb al een basiskennis van XML (XML, XSD, XSL, ...) en nog niets van JSON, maar ik zit er niets mee in om dit te leren aangezien het hier om een hobbyprojectje gaat.

Ik heb ontdekt dat er echt tutorials zat zijn met XML, maar ik dacht dat voor mobiele applicaties toch vooral voor JSON wordt gekozen. Ben ik daarin fout? Of hoe zit dat nu precies?

Software is like sex, it's better when it's free


  • xtra
  • Registratie: November 2001
  • Laatst online: 14:57
Kijk of je iets werkends kunt maken met JSON. Dan kun je zelf meteen goed vergelijken.

XML is generieker, JSON vaak compacter en makkelijker te verwerken. Client side/javascript moet je voor XML veel meer doen dan voor JSON. Voor vrijwel iedere taal zijn wel libraries om gegevens te vertalen naar JSON en v.v.
Als ik niet afhankelijk ben van andere (XML) bronnen gebruik ik voor webapplicaties vrijwel alleen nog maar JSON.

  • hostname
  • Registratie: April 2009
  • Laatst online: 04-06 20:49
De reden dat voor mobiele apps vaak voor JSON wordt gekozen is dat het door de compacte syntax minder dataverkeer verbruikt (en dus je app sneller laadt over het relatief trage netwerk). Volgens mij raadt Google ook JSON aan.

  • YopY
  • Registratie: September 2003
  • Laatst online: 08-06 01:11
JSON is eenvoudiger, minder 'regels', vaak compacter, en makkelijker om mee te starten (zolang je maar niet zelf een json parser probeert te schrijven).

Aan de andere kant, XML kan tegenwoordig zeer efficiënt gecomprimeerd en verzonden worden dmv EXI, waar specifiek mobiele toepassingen in het achterhoofd gehouden zijn.

Wat voor gegevens hebben we het hier over?

  • Rubinski
  • Registratie: Maart 2009
  • Laatst online: 25-10-2018

Rubinski

Dodelijk blond!

Topicstarter
Het is de bedoeling om een app te schrijven à la Facebook. Uiteraard een veel beperktere community (meestal maar rond de 300 mensen tegelijk online), maar dezelfde gegevens moeten verstuurd worden.

Ik heb een selectie gemaakt van de data waar ik in mijn eerste versie rekening mee ga houden:
  • Profielnieuws (Op de homepage van de website komen alle profielnieuwsjes van de gebruikers, een beetje zoals je Twitter pagina dus)
  • Foto: Er is een overzicht van de laatst geplaatste foto's, ook die wil ik graag uitlezen.
  • Je eigen profiel: De posts die in je gastenboek zijn geschreven.
Er moeten wel nog php-pagina's aangemaakt worden die de data vrijgeven, daarmee dat ik eerst moet weten voor welk formaat ik nu het beste opteer.

Software is like sex, it's better when it's free


  • Rubinski
  • Registratie: Maart 2009
  • Laatst online: 25-10-2018

Rubinski

Dodelijk blond!

Topicstarter
Kickje!

Software is like sex, it's better when it's free


  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Wat valt er nog te kicken? Je hebt toch antwoord gekregen? Beide formaten werken prima, een aantal voor- en nadelen zijn hierboven al uit de doeken gedaan.

Als je applicatie een beetje fatsoenlijk in elkaar zit, heb je alleen maar aan de randen te maken met welk formaat je gaat gebruiken. De rest van de applicatie hoeft daar niets van te weten, dus het maakt weinig uit welk formaat je uiteindelijk gaat gebruiken.

"Any sufficiently advanced technology is indistinguishable from magic."


  • Rubinski
  • Registratie: Maart 2009
  • Laatst online: 25-10-2018

Rubinski

Dodelijk blond!

Topicstarter
YopY stelde me een vraag waarop ik antwoord gaf en waarop ik dan weer een reactie verwachtte ...
Ik ben al zeer tevreden met de uitleg die ik kreeg, maar ik had graag geweten wat nu tegenwoordig het meest gebruikt wordt of wat het gemakkelijkst te leren valt. Zoals ik eerder al vermeldde heb ik redelijk weinig ervaring met beide zaken en het lijkt me dan ook handig hier een boel van te leren. Ik weet dat xml heel vaak gebruikt wordt en ik vroeg me af hoe dat nu zat met json... of dit wel de moeite is om te leren en wat hier dan de voordelen van zijn.

Software is like sex, it's better when it's free


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Tja, 'json leren'. Je roept json_encode() en json_decode() (of hoe de functies ook heten in je favo taal) aan en je hebt het 'geleerd'.

Aka. binnen 5 minuten kan je al weten of het volstaat, dus ga gewoon aan de slag en kick het topic pas bij een nieuwe vraag. Hop hop. :P

[Voor 36% gewijzigd door Voutloos op 16-06-2011 21:08]

{signature}


  • YopY
  • Registratie: September 2003
  • Laatst online: 08-06 01:11
Tegenwoordig wordt JSON voor nieuwe projecten gemaakt. Maar met de libraries (en ontwikkeltechnieken) van tegenwoordig is de keuze eigenlijk arbitrair, aangezien je redelijk eenvoudig beide bestandsformaten kunt laten versturen. JSON is ook het gemakkelijkst te leren, overigens, geen geneuzel met DTD's / XSD's, SOAP, of wat je ook maar voor hippe XML technologieën hebt.

Ik zou het gewoon met JSON bakken tot het niet meer voldoet of je vieze hacks moet gaan toepassen om het nog praktisch te houden. Laat de keuze afhangen van wat je zelf ervaart en prettig vindt, met daarbij in het achterhoofd dat je er geen tijd aan moet verspillen (hoe leuk dat ook mag zijn).

Zelf zou ik beginnen met JSON. Als je efficiënter data wilt overdragen kun je van daaruit redelijk makkelijk overstappen naar BSON. Als je API aan meerdere partijen aangeboden wordt en het nogal groot en complex wordt, dan pas zou ik naar XML kijken of een ander dataformaat dat schemas gebruikt (zoals protocol buffers).

Om maar wat buzztermen te gaan gooien, Keep It Simple, Do The Simplest Thing That Works, en 'Make it work, make it right, make it fast' - in die volgorde.

  • djc
  • Registratie: December 2001
  • Laatst online: 28-07-2022
Het argument dat JSON minder bandbreedte in beslag neemt vind ik niet zo sterk; met simpele gzip-compressie kun je de hoeveelheid gebruikte bandbreedte makkelijk gelijktrekken. Ik zou persoonlijk JSON gebruiken omdat ik het prettiger in het gebruik vind: het leest makkelijker, de waarden zijn al getypeerd (zodat je dat niet apart in een schema of op applicatieniveau hoeft te regelen), en het gebruik in de dynamische talen waarin de server-side vaak geschreven wordt is vaak uitermate intuitief.

Rustacean


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 16:59

mulder

ik spuug op het trottoir

Of je als je.Net gebruikt, WCF ondersteund het bijna automatisch het als beide te exposen: http://stackoverflow.com/...dpoints-for-a-wcf-service

oogjes open, snaveltjes dicht


  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 18:10
Welke taal gebruik je...?

PHP -> JSON. Reden? Extreem simpel om te zetten naar een array met json_decode().
.NET -> XML. Reden? Mij heeft het nog wel wat gezeur opgeleverd om JSON werkend te krijgen in .NET. Geen idee of dat tegenwoordig beter is, maar XML kan juist weer supersimpel met LINQ-to-XML.

  • Caelorum
  • Registratie: April 2005
  • Nu online
Avalaxy schreef op donderdag 23 juni 2011 @ 22:57:
.NET -> XML. Reden? Mij heeft het nog wel wat gezeur opgeleverd om JSON werkend te krijgen in .NET. Geen idee of dat tegenwoordig beter is, maar XML kan juist weer supersimpel met LINQ-to-XML.
Als je WCF gebruikt is dat allemaal geen probleem. Koste me welgeteld 5 min om om te schakelen van XML naar JSON (en ik ben echt een WCF n00b). Hoe dat met de rest van het .Net framework zit zou ik niet zo snel weten, maar een library ofzoiets voor JSON lijkt me makkelijk genoeg gevonden.

@onder: Jup. Zal mijn reactie wat helderder maken :)

[Voor 18% gewijzigd door Caelorum op 24-06-2011 11:44]


  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 22:43
Caelorum schreef op vrijdag 24 juni 2011 @ 00:13:
[...]

Als je WCF gebruikt is dat allemaal geen probleem. Koste me welgeteld 5 min om om te schakelen van XML naar JSON (en ik ben echt een WCF n00b).
Kan zo'n beetje in elk framework wel: Coding Glamour: Rails' respond_to in ASP.NET MVC

Wij geven op basis van het content/type dat je aan je request hangt XML of JSON terug in de API (ook via WCF). Wel zo makkelijk.
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee