2015-02-11 142 views
0

请帮助导致了JSON阵列 我尝试的标题:打印数组?

(function (jQuery){ 
    var json = { 
     "news": [{ 
      "img": "http://static3.www.net/img/300x300/2257740.jpeg", 
      "title": "qwerty1", 
      "url": "http://news.net.www.ru/newdata/adclick?ad=674134&bl=80802&ct=adpreview&st=16&in=YK2NFgCJu2FWSQoAjkkKAIhJCgBhSQoAfkkKAGJJCgA%3D&ag=19", 
      "id": "674134" 
     }, { 
      "img": "http://static5.www.net/img/300x300/2257778.jpeg", 
      "title": "qwerty2", 
      "url": "http://news.net.www.ru/newdata/adclick?ad=674190&bl=80802&ct=adpreview&st=16&in=YK2NFgCJu2FWSQoAjkkKAIhJCgBhSQoAfkkKAGJJCgA%3D&ag=19", 
      "id": "674190" 
     }, { 
      "img": "http://static3.www.net/img/300x300/2257776.jpeg", 
      "title": "qwerty3", 
      "url": "http://news.net.www.ru/newdata/adclick?ad=674184&bl=80802&ct=adpreview&st=16&in=YK2NFgCJu2FWSQoAjkkKAIhJCgBhSQoAfkkKAGJJCgA%3D&ag=19", 
      "id": "674184" 
     }, { 
      "img": "http://static2.www.net/img/300x300/2257748.jpeg", 
      "title": "qwerty4", 
      "url": "http://news.net.www.ru/newdata/adclick?ad=674145&bl=80802&ct=adpreview&st=16&in=YK2NFgCJu2FWSQoAjkkKAIhJCgBhSQoAfkkKAGJJCgA%3D&ag=19", 
      "id": "674145" 
     }, { 
      "img": "http://static1.www.net/img/300x300/2257766.jpeg", 
      "title": "qwerty5", 
      "url": "http://news.net.www.ru/newdata/adclick?ad=674174&bl=80802&ct=adpreview&st=16&in=YK2NFgCJu2FWSQoAjkkKAIhJCgBhSQoAfkkKAGJJCgA%3D&ag=19", 
      "id": "674174" 
     }, { 
      "img": "http://static3.www.net/img/300x300/2257750.jpeg", 
      "title": "qwerty6", 
      "url": "http://news.net.www.ru/newdata/adclick?ad=674146&bl=80802&ct=adpreview&st=16&in=YK2NFgCJu2FWSQoAjkkKAIhJCgBhSQoAfkkKAGJJCgA%3D&ag=19", 
      "id": "674146" 
     }] 
    } 

    //console.log(JSON.parse(json)); 

    jQuery.each(JSON.parse(json), function(idx, obj) { 
     alert(idx + '__' + obj.news.title); 
    }); 
})($); 

结果,控制台会显示以下错误消息:

Uncaught SyntaxError: Unexpected token o

你可以看到在线版的代码jsfiddle

+1

1.您缺少';'你的对象收盘'}'后。 2.你不需要解析这个json,因为它已经是一个对象,所以这将成为一个问题。 http://jsfiddle.net/x8dwjbj9/6/ – prodigitalson 2015-02-11 18:02:15

+1

'JSON.parse'将字符串转换为对象,'JSON.stringify'将对象转换为字符串。您正试图将对象转换为具有函数的函数,该函数将字符串作为输入。 – 2015-02-11 18:03:35

+0

你的'json'变量是一个JavaScript对象。这是***不是*** JSON。 JSON是数据的*字符串表示*。如果它不是字符串,那不是JSON。 – 2015-02-11 18:04:47

回答

2

更改您的最后一点 -

jQuery.each(json.news, function(idx, obj) { 
      alert(idx + '__' + obj['title']); 
     }); 
    })($); 

你必须遍历JSON

新闻
0

它已被解析。所以JSON.parse会抛出一个错误。修复是JSON.parse(json)应该是简单的json

希望这会有所帮助。

+1

你应该添加'if(json.hasOwnProperty(i))' – 2015-02-11 18:04:41

+0

@JanLegner对不起,实际上$ .each也支持对象迭代。我错过了。所以我删除了该行。 – UndefinedN 2015-02-11 18:06:10