<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Tech Guy FR &#187; JSON</title>
	<atom:link href="http://blog.juliencrouzet.fr/tag/json/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.juliencrouzet.fr</link>
	<description>Le blog de Julien CROUZET</description>
	<lastBuildDate>Thu, 01 Jul 2010 19:38:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>JSON vs. XML &#8211; Un débat inutile [Part 3 - Fin]</title>
		<link>http://blog.juliencrouzet.fr/60/json-vs-xml-un-debat-inutile-part-3-fin/</link>
		<comments>http://blog.juliencrouzet.fr/60/json-vs-xml-un-debat-inutile-part-3-fin/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 22:23:37 +0000</pubDate>
		<dc:creator>c2c</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.juliencrouzet.fr/?p=60</guid>
		<description><![CDATA[
Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php on line 166

Call Stack:
    0.0001     623440   1. {main}() /home/www/blog.juliencrouzet.fr/index.php:0
    0.0002     628968   2. require('/home/www/blog.juliencrouzet.fr/wp-blog-header.php') /home/www/blog.juliencrouzet.fr/index.php:17
    0.1995   37748208   3. require_once('/home/www/blog.juliencrouzet.fr/wp-includes/template-loader.php') /home/www/blog.juliencrouzet.fr/wp-blog-header.php:16
    0.2004   37751128   4. do_feed() /home/www/blog.juliencrouzet.fr/wp-includes/template-loader.php:14
    0.2004   37751408   5. do_action() /home/www/blog.juliencrouzet.fr/wp-includes/functions.php:1721
    0.2004   37753432   6. call_user_func_array() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:395
    0.2004   37753488   7. do_feed_rss2() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:0
    0.2004   37753680   8. load_template() /home/www/blog.juliencrouzet.fr/wp-includes/functions.php:1753
    0.2006   37815824   9. require_once('/home/www/blog.juliencrouzet.fr/wp-includes/feed-rss2.php') /home/www/blog.juliencrouzet.fr/wp-includes/theme.php:1087
    0.2055   37896840  10. the_excerpt_rss() /home/www/blog.juliencrouzet.fr/wp-includes/feed-rss2.php:46
    0.2093   37900336  11. apply_filters() /home/www/blog.juliencrouzet.fr/wp-includes/feed.php:177
    0.2095   37902920  12. call_user_func_array() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:166

]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-70" title="Débat" src="http://blog.juliencrouzet.fr/wp-content/uploads/2008/12/915745346.jpg" alt="Débat" width="150" height="96" /></p>
<p>Ou l&#8217;on ponctue sur <a href="http://blog.juliencrouzet.fr/2008/12/13/json-vs-xml-un-debat-inutile-part-1/">la première</a> et <a href="http://blog.juliencrouzet.fr/2008/12/14/json-vs-xml-un-debat-inutile-part-2/">la seconde</a> partie.</p>
<p><span id="more-60"></span>Ce qui est donc important est de BIEN UTILISER ces formats. JSON, XML (ou <a href="http://fr.wikipedia.org/wiki/Lisp">LISP</a>, <a href="http://remysharp.com/2007/10/08/what-is-jsonp/">JSONP</a>, etc.) permettent de représenter un objet ou un tableau, la plupart du temps. Et <strong><span style="text-decoration: underline;">tous</span></strong> les langages modernes permettent de faire cette traduction automatiquement, par exemple :</p>
<pre lang="PHP">$variable = array(
  'varA'    =>  5,
  'varB'    =>  'string',
  'varC'   => array('a', 5)
);
/**
 * To JSON
 */
$json = Zend_Json::encode($variable);
$json = json_encode($variable);
// ... On va pas tout lister ...</pre>
<p>Dans ce sens la, ça parait totalement logique (quoi que j&#8217;ai quelques fois eu à faire a des echo &#8216;&lt;markup&gt;$data&lt;/markup&gt;&#8217;</p>
<p>Mais SURTOUT, utilisons des outils modernes et arrêtons de recoder la roue :</p>
<p>J&#8217;ai un document XML ? DONC je le parse avec <strong><a href="http://fr.wikipedia.org/wiki/XPath">XPATH</a></strong> ou je le transforme (en <a href="http://fr.wikipedia.org/wiki/XHTML">XHTML</a>, en <a href="http://fr.wikipedia.org/wiki/Comma-separated_values">CSV</a>, en JSON <img src='http://blog.juliencrouzet.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) avec <strong><a href="http://fr.wikipedia.org/wiki/XSLT">XSLT</a></strong> !</p>
<p>J&#8217;ai un document JSON ? DONC je le parse avec <strong><a href="http://goessner.net/articles/JsonPath/">JSONPath</a></strong> ou je le transforme avec <strong><a href="http://www.rikarends.com/jslt-alternative-to-xslt">JSLT</a></strong> !</p>
<p>Bref, des boucles qui cherche des <a href="http://fr.php.net/DOMElement">DOMElement</a> ou des <a href="http://www.json.org/js.html">jsonObject['a’]['b']</a>, c&#8217;est à la fois pas optimisé, dangereux, long a reprendre et surtout très moche !</p>
<p>Et sourtout, comme le veux tradition, concluons sur le fait qu&#8217;une application qui ne communique qu&#8217;avec du XML est une mauvaise application. Il en est de même avec du que JSON. Un bonne application est celle qui gère les deux ! (vois plus).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.juliencrouzet.fr/60/json-vs-xml-un-debat-inutile-part-3-fin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSON vs. XML &#8211; Un débat inutile [Part 2]</title>
		<link>http://blog.juliencrouzet.fr/54/json-vs-xml-un-debat-inutile-part-2/</link>
		<comments>http://blog.juliencrouzet.fr/54/json-vs-xml-un-debat-inutile-part-2/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 22:58:50 +0000</pubDate>
		<dc:creator>c2c</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.juliencrouzet.fr/?p=54</guid>
		<description><![CDATA[
Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php on line 166

Call Stack:
    0.0001     623440   1. {main}() /home/www/blog.juliencrouzet.fr/index.php:0
    0.0002     628968   2. require('/home/www/blog.juliencrouzet.fr/wp-blog-header.php') /home/www/blog.juliencrouzet.fr/index.php:17
    0.1995   37748208   3. require_once('/home/www/blog.juliencrouzet.fr/wp-includes/template-loader.php') /home/www/blog.juliencrouzet.fr/wp-blog-header.php:16
    0.2004   37751128   4. do_feed() /home/www/blog.juliencrouzet.fr/wp-includes/template-loader.php:14
    0.2004   37751408   5. do_action() /home/www/blog.juliencrouzet.fr/wp-includes/functions.php:1721
    0.2004   37753432   6. call_user_func_array() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:395
    0.2004   37753488   7. do_feed_rss2() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:0
    0.2004   37753680   8. load_template() /home/www/blog.juliencrouzet.fr/wp-includes/functions.php:1753
    0.2006   37815824   9. require_once('/home/www/blog.juliencrouzet.fr/wp-includes/feed-rss2.php') /home/www/blog.juliencrouzet.fr/wp-includes/theme.php:1087
    0.2156   37902040  10. the_excerpt_rss() /home/www/blog.juliencrouzet.fr/wp-includes/feed-rss2.php:46
    0.2177   37904624  11. apply_filters() /home/www/blog.juliencrouzet.fr/wp-includes/feed.php:177
    0.2179   37907008  12. call_user_func_array() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:166

]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-70" title="Débat" src="http://blog.juliencrouzet.fr/wp-content/uploads/2008/12/915745346.jpg" alt="Débat" width="150" height="96" /></p>
<p>Ou l&#8217;on traite la suite de <a href="http://blog.juliencrouzet.fr/2008/12/13/json-vs-xml-un-debat-inutile-part-1/">JSON vs. XML &#8211; Un débat inutile [Part 1]</a></p>
<p><span id="more-54"></span>Donc, on est d&#8217;accord. JSON est un sacré format, et son utilisation très simplifiée dans le cadre d&#8217;un communication entre un client Web (navigateur, Flash Player, Widget, &#8230;) et sa source de donnée (Application Web [PHP, Ruby, ASP.Net, ...], serveur &#8230;).</p>
<p>XML est-il mort pour autant ? Non. XML est un standard de l&nbsp;&raquo;industrie&nbsp;&raquo;, il reste un ciment qui consolide beaucoup d&#8217;applications entre elles.<br />
Comment imaginer que le format utilisé par Word, XML-RPC, SOAP, XHTML, etc. puisse disparaître comme ça ?</p>
<p>La vraie question est plutôt, doit-il disparaître ? Il n&#8217;y a aucun modèle de donnée représentable en JSON qui ne le soit en XML, et inversement. Cela est également vrai pour d&#8217;autres formats. <a href="http://www.megginson.com/blogs/quoderat/2007/01/03/all-markup-ends-up-looking-like-xml/">Je ne suis pas le seul à le penser</a>.En fait, la seule chose importante est de BIEN utiliser les formats !</p>
<p>Le vrai scandale, ce n&#8217;est pas XML mais <a href="http://www.commentcamarche.net/contents/php/phpxml.php3">les bouts de codes</a> comme ça :</p>
<pre lang="PHP">$fp = fopen("essai.xml", "r") or die("
Fichier introuvable. L'analyse a ete suspendue");

while ($fdata = fread($fp, 2048)){
	xml_parse($xml_parseur, $fdata, feof($fp)) or die(
		sprintf("Erreur XML : %s à la ligne %d\n",
		xml_error_string(xml_get_error_code($xml_parseur)),
		xml_get_current_line_number($xml_parseur))
		);

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.juliencrouzet.fr/54/json-vs-xml-un-debat-inutile-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JSON vs. XML &#8211; Un débat inutile [Part 1]</title>
		<link>http://blog.juliencrouzet.fr/31/json-vs-xml-un-debat-inutile-part-1/</link>
		<comments>http://blog.juliencrouzet.fr/31/json-vs-xml-un-debat-inutile-part-1/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 23:32:10 +0000</pubDate>
		<dc:creator>c2c</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.juliencrouzet.fr/?p=31</guid>
		<description><![CDATA[
Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php on line 166

Call Stack:
    0.0001     623440   1. {main}() /home/www/blog.juliencrouzet.fr/index.php:0
    0.0002     628968   2. require('/home/www/blog.juliencrouzet.fr/wp-blog-header.php') /home/www/blog.juliencrouzet.fr/index.php:17
    0.1995   37748208   3. require_once('/home/www/blog.juliencrouzet.fr/wp-includes/template-loader.php') /home/www/blog.juliencrouzet.fr/wp-blog-header.php:16
    0.2004   37751128   4. do_feed() /home/www/blog.juliencrouzet.fr/wp-includes/template-loader.php:14
    0.2004   37751408   5. do_action() /home/www/blog.juliencrouzet.fr/wp-includes/functions.php:1721
    0.2004   37753432   6. call_user_func_array() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:395
    0.2004   37753488   7. do_feed_rss2() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:0
    0.2004   37753680   8. load_template() /home/www/blog.juliencrouzet.fr/wp-includes/functions.php:1753
    0.2006   37815824   9. require_once('/home/www/blog.juliencrouzet.fr/wp-includes/feed-rss2.php') /home/www/blog.juliencrouzet.fr/wp-includes/theme.php:1087
    0.2226   37905944  10. the_excerpt_rss() /home/www/blog.juliencrouzet.fr/wp-includes/feed-rss2.php:46
    0.2266   37908544  11. apply_filters() /home/www/blog.juliencrouzet.fr/wp-includes/feed.php:177
    0.2268   37910952  12. call_user_func_array() /home/www/blog.juliencrouzet.fr/wp-includes/plugin.php:166

]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-70" title="Débat" src="http://blog.juliencrouzet.fr/wp-content/uploads/2008/12/915745346.jpg" alt="Débat" width="150" height="96" /></p>
<p>Depuis l&#8217;avènement d&#8217;AJAX, <a title="JSON sur Wikipedia" href="http://fr.wikipedia.org/wiki/JavaScript_Object_Notation">JSON</a> est devenu un format de données populaire. Tellement populaire que certains ont commencé à le comparer au format historique (au sens France Telecom du terme), <a href="http://fr.wikipedia.org/wiki/Extensible_Markup_Language">XML</a>. Depuis, un débat sans fin agite la planète geek avec d&#8217;un coté des groupies de JSON, jurant la mort d&#8217;un vieux format glouton et grincheux, et de l&#8217;autre, des ingénieurs très 90&#8242;s qui refusent tout de go d&#8217;abandonner un format qu&#8217;ils ont eu tant de mal à maîtriser pour un nouveau plus simple. Une élite, ça se protège.</p>
<p><span id="more-31"></span></p>
<p>Historiquement, XML fut une révolution. Un format, adopté par toute la communauté, qui permettent a deux programmes hétéroclites (langage, système, &#8230;) de s&#8217;échanger des données. C&#8217;était juste impensable. XML l&#8217;a fait !</p>
<p>Historiquement, JSON n&#8217;est absolument <strong>pas</strong> une révolution, mais une notation. La notation d&#8217;un objet en javascript. D&#8217;ou son nom : <span style="color: #ff6600;">J</span>ava<span style="color: #ff6600;">S</span>cript <span style="color: #ff6600;">O</span>bject <span style="color: #ff6600;">N</span>otation. Les grincheux du fond diront que c&#8217;est un abus car c&#8217;est la notation objet d&#8217;<a href="http://fr.wikipedia.org/wiki/ECMAScript">ECMAScript</a> (sorte de maître à penser de JavaScript), mais on s&#8217;en fout. Or on ne sait qui ou quand, mais un jour quelqu&#8217;un d&#8217;intelligent à décidé d&#8217;en faire un format d&#8217;échange de donnée.Quelle idée tordue et quelle idée de génie ! JSON permet de décrire tout type de donnée de la simple variable à la structure complexe.</p>
<p>Voila donc deux formats de donnée qui semblent tous deux être une solution aux même problèmes, alors que diantre, battez-vous il ne doit en rester qu&#8217;un ! Sus aux doublons, qui est le meilleur ?</p>
<p>Et bien ils ne sont pas concurrents mais complémentaires. Oui, comme à l&#8217;école des fans, tout le monde gagne &#8230;</p>
<p>En effet, disons le tout de suite, pour ce qui est AJAX, ou même plus largement, la communication entre un serveur Web et un client. PHP, Ruby, Python, ASP.Net, C++, et <a title="Voir la liste des langages en bas de page" href="http://www.json.org/">tous leurs cousins</a> ont tous leur traducteur de JSON attitré. Et en face d&#8217;un serveur Web, on à quoi ? A 99%, un navigateur (si on enlève les Webservices, les crawlers, etc.). Et qu&#8217;est-ce qu&#8217;offre un navigateur offre en termes de langages (mis a part XHTML et CSS) ? JavaScript et ActionScript (flash). Enfin, quel est le point commun entre JavaScript et ActionScript ? ECMAScript ! Autrement dit, votre navigateur parle lui <strong>couramment</strong> le JSON, et l&#8217;interpretera rapidement et facilement.</p>
<p>On peut donc dire que même si, pour des raisons historiques et par respect du X dans AJAX, JSON est le format qu&#8217;il faut pour une communication client-server Web. XML bien trop lourd, lent à analyser et trop verbeux n&#8217;a plus rien à faire dans ce débat la.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.juliencrouzet.fr/31/json-vs-xml-un-debat-inutile-part-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
