0

我想从 json 数组中读取 id 和 name。我已经编写了以下代码,但是当我尝试使用 parseJSON 方法读取 id 时,它给了我未定义的信息。谁能告诉我如何读取 json 数据。下面是我写的代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type='text/javascript'>
$(document).ready( function() {
 // $("#request_content").click(function(){
    $('#time').html(new Date);
    $('#status').html('');
    $('#content').html('');
    var id = '';
    $.ajax({
      cache: false,
      url: $('#xhr_url').val()
    }).done(function(data, textStatus, jqXHR) { 
    //alert(data);     
      $('#status').html(textStatus);
      $('#content').html(JSON.stringify(data));

     var jsonp = JSON.stringify(data);
     var obj = $.parseJSON(jsonp);
      $.each(obj, function() {
      //alert("hi");
          id += this['Id'] + "<br/>";
          $('#content').html(id);
      });
      //$('#content').html(lang);
    }).fail(function(jqXHR, textStatus) {
      $('#status').html(textStatus);    
      $('#content').html('(failed)');
    })
 // });
});
</script>
<body>
  <input id='xhr_url' style='width:600px;' type='text' value='http://t2json.tgoservices.com/818746/PrinterManufacturers'/>

  <button id='request_content'>Request content</button>
  <fieldset><legend>Time:</legend>
    <div id='time'></div>
  </fieldset>
  <fieldset><legend>Status:</legend>  
    <div id='status'></div>
  </fieldset>
  <fieldset><legend>Content:</legend>

    <div id='content'></div>
  </fieldset>
</body>

请让我知道问题所在。

4

2 回答 2

0

替换这行代码:

var jsonp = JSON.stringify(data);
var obj = $.parseJSON(jsonp);
  $.each(obj, function() {
  //alert("hi");
      id += this['Id'] + "<br/>";
      $('#content').html(id);
  });

有了这个:

$.each(data, function(idx, value){
    var items = value.PrinterManufacturers.Items;
    for(var a = 0; a < items.length; a++) {
       id += items[a].Id + '<br>';
    }
    $('#content').html(id);
});
于 2013-04-04T07:44:39.080 回答
0

如下更改您的每个功能

var id = "";
$.each(data.T2Json.PrinterManufacturers.Items, function() {
   id += this.Id + "<br/>";
   console.log(this.Id);
});

这是一个完整的工作示例http://jsfiddle.net/mayooresan/4eU4X/

在这里,您的服务返回 JavaScript 对象而不是 JSON 字符串。所以如果你用它来解析它JSON.parse()会给你错误。

于 2013-04-04T08:15:32.270 回答