Convert JSON string to array of JSON objects in Javascript

前端 未结 6 1651
感情败类
感情败类 2020-11-27 12:14

I would like to convert this string

{\"id\":1,\"name\":\"Test1\"},{\"id\":2,\"name\":\"Test2\"}

to array of 2 JSON objects. How should I do

相关标签:
6条回答
  • 2020-11-27 12:47

    I know a lot of people are saying use eval. the eval() js function will call the compiler, and that can offer a series of security risks. It is best to avoid its usage where possible. The parse function offers a more secure alternative.

    0 讨论(0)
  • 2020-11-27 12:48

    As Luca indicated, add extra [] to your string and use the code below:

    var myObject = eval('(' + myJSONtext + ')');
    

    to test it you can use the snippet below.

    var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]";
    var myObject = eval('(' + s + ')');
    for (i in myObject)
    {
       alert(myObject[i]["name"]);
    }
    

    hope it helps..

    0 讨论(0)
  • 2020-11-27 12:57

    Using jQuery:

    var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
    var jsonObj = $.parseJSON('[' + str + ']');
    

    jsonObj is your JSON object.

    0 讨论(0)
  • 2020-11-27 12:57

    As simple as that.

    var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
     dataObj = JSON.parse(str);
    
    0 讨论(0)
  • 2020-11-27 12:57

    Append extra an [ and ] to the beginning and end of the string. This will make it an array. Then use eval() or some safe JSON serializer to serialize the string and make it a real JavaScript datatype.

    You should use https://github.com/douglascrockford/JSON-js instead of eval(). eval is only if you're doing some quick debugging/testing.

    0 讨论(0)
  • 2020-11-27 13:01

    If your using jQuery, it's parseJSON function can be used and is preferable to JavaScript's native eval() function.

    0 讨论(0)
提交回复
热议问题