Forums : Les possiblités de la plateforme Mozilla

Aller à la discussion :  Plus récente Plus ancienne

# Native Json

Envoyé par : trblft

Date : 23/09/2008 23:00

Bonsoir à tous, Je viens de voir un truc appelé "Native Json" sur le wiki de Firefox 3.1, dans la feature list. C'est quoi?

# Re: Native Json

Envoyé par : Paul Rouget

Date : 30/09/2008 14:34

C'est pour faire du JSON :/ Concrêtement, qu'est ce que tu ne comprends pas ?

# Re: Native Json

Envoyé par : trblft

Date : 08/10/2008 18:36

Ben, en quoi c'est natif :-)

C'est vrai, qu'est ce que ça fait de plus? ça transforme quel genre d'objet en Json? Ou mieux, ça fait quoi avec le Json? ça joue le rôle de certaines bibliothèques qui gère du Json comme des objets?

Parce qu'en Javascript, y'a pas besoin de grand-chose pour ça.

Donc je me demandais si ça faisait autre chose, comme par exemple prendre un formulaire XUL ou autre et créer un objet Json avec tout le contenu du formulaire. Ou alors recevoir un Json contenant des noms de contrôle et des valeurs et modifier le formulaire correspondant à ces noms de contrôle.

Y-a-t-il une doc de ça?

# Re: Native Json

Envoyé par : Paul Rouget

Date : 20/10/2008 10:20

C'est natif (écrit en C++), pas besoin de contenu externe. Voilà l'API :

http://mxr.mozilla.org/mozilla/source/do(..)

# Re: Native Json

Envoyé par : laurentj

Date : 17/11/2008 11:39

Ça permet surtout d'encoder/decoder du json de manière sécuriser. le toString/eval de JS n'est pas suffisant pour faire du JSON secure. Et puis ça évite d'embarquer une lib js qui encode/decode du json.

# Re: Native Json [Résolu]

Envoyé par : trblft

Date : 19/07/2009 18:05

La page consacrée en anglais

Je déterre le post parce que franchement, je trouve que c'est bien pratique ce truc, et ça marche même en remote XUL, donc très utile. Par exemple, voici un petit extrait de code qui me fait un tableur, à noter que pour l'utiliser, il faut inclure Jquery dans votre page :

function getColumnsIds(treeId) {
var tree=document.getElementById(treeId);
var treeColumns=$(tree).children('treecols');
var treeColumns = $(treeColumns).children('treecol');
var columnsIds = [];
$(treeColumns).each(function(){
	columnsIds.push(this.id);	
});
return columnsIds;
}
function treeToCompleteJson(treeId) {
var columnsIds = getColumnsIds(treeId);
var tree=document.getElementById(treeId);
var jsonTree=[];
var    treeChild=$(tree).children('treechildren').children('treeitem').each(function(j) {
var treeRow=this.firstChild;
var jsonItem = {};
var treeCells=$(treeRow).children('treecell');
$(treeCells).each(function(i){
if ($(this).attr('editable')=='false')   $(jsonItem).attr(columnsIds[i],$(this).attr('value'));
else $(jsonItem).attr(columnsIds[i],$(this).attr('label'));
});
jsonTree.push(jsonItem);
});
return JSON.stringify(jsonTree);
}
function sendCompleteTreeToScript(treeId,scriptUrl){
$.post(scriptUrl, treeToCompleteJson(treeId), function(data){
 alert(data);
});
}

La première fonction me cherche les identifiants de colonne pour le tree dont l'id est treeId et la deuxième me transforme chaque treeitem en objet Json, que je peux donc envoyer en paramètre POST à un script (php par exemple), or php gère le Json. Bon j'aurai p'tet dû mettre cet exemple dans un sujet à part, si j'aboutis, j'en ferai un vrai sujet complet. Json, c'est beau, il suffit de faire pour déclarer un nouveau tableau, {} pour un nouvel objet, de faire objet.attribut=variable pour faire de la variable l'attribut de l'objet.

Enfin une fonction qui aide vraiment au remote Xul.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.