Convert JSON string to an array in JavaScript

15,922

One option is to use eval:

var arr = eval('(' + json_text + ')');

The above is easiest and most widely supported way of doing this, but you should only use eval if you trust the source as it will execute any JavaScript code.

Some browsers have a native JSON parser in which case you can do the following:

var arr = JSON.parse(json_text);

Third-party libraries such as jQuery can also provide functions for dealing with JSON. In jQuery, you can do the following:

var arr = jQuery.parseJSON(json_text);

The bottom two methods (which use a parser) are preferred as they provide a level of protection.

Share:
15,922
sardo
Author by

sardo

Updated on June 28, 2022

Comments

  • sardo
    sardo almost 2 years

    I'm using jqPlot to create a chart. The data points for the chart come from a JSON object which is built using GSON. The chart data points are built in a JavaScript array format, so the Java object that holds the data to send to the client stores the data as follows:

    String chartDataPoints = "[[1352128861000, 0.0], [1352128801000, 0.0], [1352128741000,   0.0], [1352128681000, 0.0], [1352128621000, 0.0],...More chart points in this format ,[[x0,y0], [x1,y2]...]]";
    

    The x points are dates.

    Is it possible to pass this data straight from the JSON object as though it is a JavaScript array? Currently MyJsonObject.chartDataPoints is treated as a String, and so jqPlot ($.jqplot ('chart1', MyJsonObject.chartDataPoints) doesn't plot anything.