Is there an [XSLT](http://www.w3.org/TR/xslt) equivalent for JSON? Something to allow me to do transformations on JSON like XSLT does to XML.
['https://Stackoverflow.com/questions/1618038', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/147141/']
As yet another new answer to an old question, I'd suggest a look at [DefiantJS](http://defiantjs.com/). It's not an XSLT *equivalent* for JSON, it ***is*** XSLT for JSON. The "Templating" section of the documentation includes this example:

```
<!-- Defiant template -->
<script type="defiant/xsl-template">
    <xsl:template name="books_template">
        <xsl:for-each select="//movie">
            <xsl:value-of select="title"/><br/>
        </xsl:for-each>
    </xsl:template>
</script>

<script type="text/javascript">

var data = {
        "movie": [
            {"title": "The Usual Suspects"},
            {"title": "Pulp Fiction"},
            {"title": "Independence Day"}
        ]
    },
    htm = Defiant.render('books_template', data);

console.log(htm);
// The Usual Suspects<br>
// Pulp Fiction<br>
// Independence Day<br>

```
[CsvCruncher](https://github.com/OndraZizka/csv-cruncher/)
==========================================================

Despite it's name does not suggest it, CsvCruncher can be efficiently used to read *tabular*\* JSON data and process them using SQL.

`*` Tabular means that some part of the JSON tree is regular, i.e. one to many entries of same or similar structure.

CsvCruncher turns this part of the tree into a SQL table, and then you have a full SQL syntax to query it.  

You may also load multiple JSON trees, and then have multiple tables to play with.  

You may also store the SQL result as a JSON (or CSV) and then process it again.

This has served me way better than really complicated XSLT approach (despite it's a lot of fun when you really know it deeply).

*Disclaimer: I am the developer of CsvCruncher.*