Defiant Example
by Hakan Bilgin
HTML
<script src="http://defiantjs.com/defiant.js/dist/defiant-latest.min.js?upd"></script>
<h2 id="name"></h2>
Max age: <span id="max_age"></span><br/>
Price: <span id="price"></span>
JavaScript
var data = {
"SkiPass": [
{
"Id": 1,
"Area": "Chamonix",
"Rates": [
{ "Id": 1, "AgeMin": 0, "AgeMax": 2, "Price": 2.5 },
{ "Id": 2, "AgeMin": 3, "AgeMax": 17, "Price": 5 },
{ "Id": 3, "AgeMin": 18, "AgeMax": 30, "Price": 6.2 },
{ "Id": 4, "AgeMin": 31, "AgeMax": 59, "Price": 7.4 }
]
},
{
"Id": 2,
"Area": "Megeve",
"Rates": [
{ "Id": 1, "AgeMin": 0, "AgeMax": 2, "Price": 1 },
{ "Id": 2, "AgeMin": 3, "AgeMax": 17, "Price": 2 },
{ "Id": 3, "AgeMin": 18, "AgeMax": 30, "Price": 2.2 },
{ "Id": 4, "AgeMin": 31, "AgeMax": 59, "Price": 4.4 }
]
},
{
"Id": 3,
"Area": "Verbier",
"Rates": [
{ "Id": 1, "AgeMin": 0, "AgeMax": 2, "Price": 1.5 },
{ "Id": 2, "AgeMin": 3, "AgeMax": 17, "Price": 3 },
{ "Id": 3, "AgeMin": 18, "AgeMax": 30, "Price": 4.2 },
{ "Id": 4, "AgeMin": 31, "AgeMax": 59, "Price": 5.4 }
]
}
]
},
res1 = JSON.search( data, '//SkiPass[Id=3]/Area' ),
res2 = JSON.search( data, '//*[Area and Id=3]/Rates' )
.sortDesc('AgeMax'); // <-- sorting descending by the value of "AgeMax"
document.getElementById('name').innerHTML = res1;
document.getElementById('max_age').innerHTML = res2[0].AgeMax;
document.getElementById('price').innerHTML = res2[0].Price;