Correspondance d'URL - Appliquer des correctifs JSON

Exécute des requête d'application de correctifs JSON pré-établis selon la correspondance des paramètres de l'URL.

Pour le besoin de l'exemple pratique, cette page utilise plusieurs instance du plugiciel wb-urlmapping et il pourrait être tous combiné ensemble. Avoir une seule instance c'est l'approche qui est recommendé.

Code source des fichiers JSON

empty.json
{}
data-fr.json
{
	"ville": {
		"gat": "Gatineau",
		"ott": "Ottawa",
		"vdm": "Val-des-monts"
	},
	"fruit": "poire",
	"pays": {
		"nom": "Canada",
		"province": {
			"qc": "Québec",
			"on": "Ontario",
			"ma": "Manitoba"
		}
	}
}

Application de correctifs

Résultats

Ma ville est: quelques part

Mon fruit est: tous

La configuration wait permet d'indiquer que le json-manager doit attendre de recevoir des correctifs par un autre plugiciel avant de mettre à jour le contenu affichier par le data-json content.

Code source
<div data-wb-urlmapping='{
		"exemple1a": { "action": "patch", "source": "#jmexemple1", "patches": [
				{ "op": "add", "path": "/ville", "value": "Gatineau" },
				{ "op": "add", "path": "/fruit", "value": "Pomme" }
			]
		},
		"exemple1b": { "action": "patch", "source": "#jmexemple1", "patches": [
				{ "op": "add", "path": "/ville", "value": "Ottawa" },
				{ "op": "add", "path": "/fruit", "value": "Orange" }
			]
		},
		"exemple1c": { "action": "patch", "source": "#jmexemple1", "patches": [
				{ "op": "add", "path": "/ville", "value": "Hull" }
			]
		},
		"exemple1d": { "action": "patch", "source": "#jmexemple1", "patches": [
				{ "op": "add", "path": "/fruit", "value": "Kiwi" }
			]
		},
		"multiplequery": true
	}'></div>

<ul>
	<li><a href="?#ex1">Vide <code>?</code></a></li> 
	<li><a href="?exemple1a#ex1">Gatineau et Pomme <code>?exemple1a</code></a></li>
	<li><a href="?exemple1b#ex1">Ottawa et Orange <code>?exemple1b</code></a></li>
	<li><a href="?exemple1c&amp;exemple1d#ex1">Hull et Kiwi <code>?exemple1c&amp;exemple1d</code></a></li>
</ul>
	
<section class="well" id="jmexemple1" data-wb-jsonmanager='{
			"url": "demo/empty.json",
			"name": "exemple1",
			"wait": true
		}'>
	<h3 class="mrgn-tp-sm">Résultats</h3>
	<p>Ma ville est: <span data-json-replace="#[exemple1]/ville">quelques part</span></p>
	<p>Mon fruit est: <span data-json-replace="#[exemple1]/fruit">tous</span></p>
</section>

Utiliser les valeur de la requête de la pages pour appliquer des correctifs

Par défauts

La valeur du paramètre sera utilisé en tant que clef afin de le l'objet vers l'objet parent.

La ville sélectionné est : quelques part

Code source
<ul data-wb-urlmapping='{ "ville" : { "action": "patch", "source": "#jmexemple2", "base": "/ville", "match": "^[a-z][a-z][a-z]$", "default": "gat" } }'>
	<li><a href="?#ex2">Empty <code>?</code></a></li> 
	<li><a href="?ville=gat#ex2">Gatineau <code>?ville=gat</code></a></li>
	<li><a href="?ville=ott#ex2">Ottawa <code>?ville=ott</code></a></li>
	<li><a href="?ville=vdm#ex2">Val-des-monts <code>?ville=vdm</code></a></li>
	<li><a href="?ville=hull#ex2">Hull <code>?ville=hull</code></a> (Fallback on default <code>gat</code>)</li>
	<li><a href="?ville=hul#ex2">Hull <code>?ville=hul</code></a> (Do nothing)</li>
</ul>

<p id="jmexemple2" data-wb-jsonmanager='{ "url": "demo/data-fr.json", "name": "exemple2", "wait": true }'>La ville sélectionné est : <span data-json-replace="#[exemple2]/ville">quelques part</span></p>

Être précis dans la correspondance

Les configuration suivante vont écraser/contourner les fonctionalitées par défaut pour l'application des correctifs.

Résultat:

Code source
<ul data-wb-urlmapping='{ 
		"ex3a" : { "action": "patch", "source": "#jmexemple3", "base": "/ville", "match": "^[a-z][a-z][a-z]$", "default": "vdm" },
		"ex3b" : { "action": "patch", "source": "#jmexemple3", "base": "/ville", "qval": "gat" },
		"ex3c=exemple" : { "action": "patch", "source": "#jmexemple3", "base": "/ville", "qval": "ott" },
		"ex3d" : { "action": "patch", "source": "#jmexemple3", "base": "/pays/province", "match": "^[a-z][a-z]$", "default": "ma" }
	}'>
	<li><a href="?#ex3">Vide <code>?</code></a></li> 
	<li><a href="?ex3a#ex3">La base est "/ville", repli sur le défaut <code>?ex3a</code></a></li>
	<li><a href="?ex3a=gat#ex3">La base est "/ville", affiche Gatineau <code>?ex3a=gat</code></a></li>
	<li><a href="?ex3a=ott#ex3">La base est "/ville", Affiche Ottawa <code>?ex3a=ott</code></a></li>
	<li><a href="?ex3b#ex3">La base est "/ville" avec la valeur "gat" défini, affiche Gatineau <code>?ex3b</code></a></li>
	<li><a href="?ex3c=exemple#ex3">La base est "/ville" avec la valeur "ott" défini, affiche Ottawa <code>?ex3c=exemple</code></a></li>
	<li><a href="?ex3d#ex3">La base est "/province" avec la racine "/pays/", repli sur le défaut <code>?ex3d</code></a></li>
	<li><a href="?ex3d=on#ex3">La base est "/province" avec la racine "/pays/", affiche Ontario <code>?ex3d=on</code></a></li>
	<li><a href="?ex3d=qc#ex3">La base est "/province" avec la racine "/pays/", affiche Québec <code>?ex3d=qc</code></a></li>
</ul>

<p>Résultat:</p>
<ul id="jmexemple3" data-wb-jsonmanager='{ "url": "demo/data-fr.json", "name": "exemple4", "wait": true }'>
	<li>Ville: <span data-json-replace="#[exemple4]/ville">non définie</span></li>
	<li>Province: <span data-json-replace="#[exemple4]/country/province">non défini</span></li>
</ul>
Date de modification :
Signaler un problème sur cette page
Veuillez cocher toutes les réponses pertinentes :

Merci de votre aide!

Vous ne recevrez pas de réponse. Pour toute question, s’il vous plaît contactez-nous.