1

在我的浏览器中执行 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: Unexpected token o ...我迫切希望解决这个问题

4

5 回答 5

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);
于 2013-08-28T08:42:41.867 回答
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]);
      }
  }
});

希望这会帮助你。

于 2013-08-28T09:08:11.560 回答
0

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

所有对象键都需要用双引号括起来,并且不能混合和匹配单/双引号,例如'Jhon'.

[   
    {
        "id": "1234",
        "name": "Carl",
        "age": "17"
    },
    {
        "id": "9876",
        "name": "Jhon",
        "age": "19"
    }
]
于 2013-08-28T08:45:11.847 回答
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

于 2013-08-28T08:37:39.003 回答
0

演示

试试这个代码

  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']);
}
于 2013-08-28T08:37:42.383 回答