JSONSelect

CSS-like selectors for JSON - http://jsonselect.org

by molokoloco

HTML

<script src="https://github.com/lloyd/JSONSelect/raw/master/src/jsonselect.js"></script>

CSS

p { 
    font:12px Arial;
    border:1px solid grey;
    padding:3px;
    margin:3px;
}

JavaScript

/*
Json as easy as SQL ??? RT @lloydhilaiel JSONSelect - CSS-like selectors for JSON - http://jsonselect.org
Testing...
*/
var jsonData = {
    "name": {
        "first": "Lloyd",
        "last": "Hilaiel"
    },
    "favoriteColor": "yellow",
    "languagesSpoken": [
        {
        "language": "Bulgarian",
        "level": 2},
    {
        "language": "English",
        "level": 1},
    {
        "language": "Spanish",
        "level": 7}
    ]
};

var selector = '.name > *'; // xPath CSS like selector

try {
    
    var resultObj = JSONSelect.match(selector, jsonData);
    console.log(typeof resultObj);
    console.log(resultObj);
    console.log('- - - - -');
    
    JSONSelect.forEach(selector, jsonData, function(resultObj) {
        console.log(typeof resultObj);
        console.log(resultObj);
        console.log('- - - - -');
        $('body').append('<p>' + $.trim(JSON.stringify(resultObj, null, ' ')) + '</p>');
    });

} catch(e) { console.log(e); }