将JSON转换为数组

时间:2013-08-28 08:35:07

标签: javascript html json jquery

在我的浏览器中执行url时我有这个:

   [{
       "id": "1234",
       "name": "Carl",
       "age": "17"
   }, {
       "id": "9876",
       "name": "Jhon",
       "age": "19"
   }]

我有这个功能:

     function get(callback) {
         return $.ajax({
             type: "GET",
             // url: 'rest/cars/list',
             url: 'my url',
             dataType: "json",
             context: this,
             success: function (response) {
                 callback.call(this, response);
             }
         });
     };

我的代码是:

  var pos = get();
  var ob = JSON.parse(pos);
  var arr = [];
  for (var i in ob) {
      if (ob.hasOwnProperty(i)) {
          arr.push(ob[i]);
          alert(arr[i]);
      }
  }

我需要知道如何将JSON转换为数组,所以我将:

arr[0].id = 1234 

...等 我的代码不工作我有这个错误SyntaxError:意外的令牌o ... 我迫不及待地想解决这个问题

5 个答案:

答案 0 :(得分:0)

这里的JSON无效:

  [{
      id: "1234",
      name: "Carl",
      age: "17", //this is invalid
  }, {
      id: "9876",
      name: 'Jhon',
      age: "19"
  }]

这是一个有效的版本:

[{
    "id": "1234",
    "name": "Carl",
    "age": "17"
},
{
    "id": "9876",
    "name": "Jhon",
    "age": "19"
}]

您可以在此处验证:JSONLint

答案 1 :(得分:0)

Demo

试试此代码

  var obj=[{
       id: "1234",
       name: "Carl",
       age: "17",
   }, {
       id: "9876",
       name: 'Jhon',
       age: "19"
   }];

for(var i=0;i<obj.length;i++)
{
    alert(obj[i]['age']);
    alert(obj[i]['id']);    
    alert(obj[i]['name']);
}

答案 2 :(得分:0)

试试这个

var json_data = your correct json data here
var result = [];

for(var i in json_data)
result.push([i, json_data [i]]);

var data = new google.visualization.DataTable();
data.addColumn('number', 'ID');
data.addColumn('string', 'Name');
data.addColumn('number', 'Age');
data.addRows(result);

答案 3 :(得分:0)

Javascript的JSON解析器非常严格,您的JSON无效

所有对象键都必须是双引号,并且不能混用和匹配'Jhon'之类的单/双引号。

[   
    {
        "id": "1234",
        "name": "Carl",
        "age": "17"
    },
    {
        "id": "9876",
        "name": "Jhon",
        "age": "19"
    }
]

答案 4 :(得分:0)

调用get()函数的方法无效。 get()方法需要一个未提供的回调函数。此外,get()函数返回的值是一个jQuery对象。不是您从服务器获得的响应。请参考以下实现。

在成功功能中进行以下更改:

     function get(callback) {
         return $.ajax({
             type: "GET",
             // url: 'rest/cars/list',
             url: 'my url',
             dataType: "json",
             context: this,
             success: function (response) {
                 callback(response);
             }
         });
     };

按如下方式调用get()方法:

get(function(pos){
var ob = pos;
  var arr = [];
  for (var i in ob) {
      if (ob.hasOwnProperty(i)) {
          arr.push(ob[i]);
          alert(arr[i]);
      }
  }
});

希望这会对你有所帮助。