得到简化的数组,请参见下面的内容

,然后再对复杂的数组进行解析,请参见此处。


TLDR:想从数组中获取每个标题并插入使用Jquery-getJSON将其放入div,而无需知道div内部是什么。

编辑:数据来自一个软件,该软件每两秒钟输出JSON字符串和新数据,因此我需要在“ d”中提取数据数组,如下例所示。所以我应该分别获得“ Title”和“ 034324324”等。

Edit2更新了代码以完全匹配我的。.

我有JSON数组可以说:

{
  "Days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
}


我想对每个“标题”进行解析,以将其插入div。

按照
的方法进行尝试
function getdata() {
31 $.ajaxSetup ({ cache: false}); //<!-- Stops IE from caching data //-->
32 
33 $.getJSON(testurl, function(data) {
34 $.each(data.days, function(i,item){
35 $('#testfield').append('<p>' + item + '</p>');
36
37 });
38 }); 


无济于事。

我在其他地方使用Getjson,但在我知道自己提出要求的情况下。
例如:

$('#name').html(data.Projectname);


一切正常,但是在这种情况下,我需要从数组中获取详细信息,但不知道数组中有什么,我确定一些简单的东西,我在这里丢失或做错了^^。

我目前正在使用的JSON看起来像:

{"Projectname":"ertyofhj","Projectid":"aqwertyuqw","Projecttitle":"ertyofhj"}


数组只是一种在不知道数组内部内容的情况下提取数据的方法。

我一直在添加更多内容。
调试firebug或IE的debugger(Aargh)将会成功

q4 312078q

然后

33 $.getJSON(testurl, function(data) {


完全跳过

38 });


-GET请求正常运行并返回正确的JSON字符串。但是现在它不会填充$ .each,即使我特别要求某个字符串也是如此。
在上面的说明中,Firebug还告诉我它没有格式化为JSON?

将原始JSON字符串更改为更简单的内容。(星期几)将加载星期几。所以我要去某个地方。但是我需要能够调用更复杂的数组。例如,(使用天数)每天都有一个特定的时间,我也需要显示该时间,而且每天都应该在新行上尝试添加“ +'
”,但这也不起作用。在数组中显示,例如:

34 $.each(data.days, function(i,item){


我需要为所有日期和时间提取日期。

评论

甚至听起来更困难,如何从JSON字符串中获取所有详细信息而不使用数组/根本不知道其内部内容(如果可能的话:P)

#1 楼

$.getJSON(url,
    function(data){
      $.each(data.items, function(i,item){
      $('#testfield').html('<p>' + item.d.title + '</p>');
      });
    });


在此代码中,您最终将用ID'testfield'将项目的HTML替换为一遍又一遍的值...您可能想尝试使用jQuery.append以按照上面的指定添加所有条目

$.getJSON(url,
    function(data){
      $.each(data.items, function(i,item){
      $('#testfield').append('<p>' + item.d.title + '</p>');
      });
    });


评论


那将是完全合理的。但可悲的是它仍然对我不起作用:P

– Sphvn
2010-4-29的3:24

您的数据格式错误。在上面的日期示例(工作日后跟一个值)中,您错误地在其中指定了元素。对于每个元素,您将需要例如{“ Sunday”:“ 10.00”}等。请参阅下面的其他答案。

–戴夫G
2010-4-29 17:28

#2 楼

JSON数据中有一个错误:您在最后三项中的“ d”后没有使用冒号。这是您的应用程序正在使用的真实数据的示例,还是用于演示您的问题的示例数据?

评论


它是循环中使用的局部变量。

–达琳·迪米特洛夫(Darin Dimitrov)
2010-4-28 7:39

这是一个示例,用来说明我在使用Flickr进行安装后可以正常工作的问题。从一个例子。只是比flickr json字符串减少了更多。但是,请注意,它们应该有冒号。

– Sphvn
2010-4-29在2:32



在我要使用的“测试示例”中添加了冒号。

– Sphvn
2010-4-29在2:40

#3 楼

希望本示例将为您指出正确的方向


<html>
<head>
  <title>Stackoverflow</title>
  // ** POINT THIS TO A VALID jquery.js LOCATION
  <script src="jquery.js" type="text/javascript"></script>
  <script>
    var days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
    // *****************************************************
    // This is your data from getJSON if correctly formatted
    var data = '{"Days":[ {"Sunday":"10.00"}, {"Monday":"12.00"}, {"Tuesday":"09.00"}, {"Wednesday":"10.00"}, {"Thursday":"02.00"}, {"Friday":"05.00"}, {"Saturday":"08.00"}]}';
    runUpdate = function() {
      // *******************************************************
      // Clear the div of all data by replacing it
      $('#testfield').replaceWith('<div id="testfield"></div>');
      var dataObject= $.parseJSON( data );
      $.each( dataObject.Days, function (index, value) {
        // ********************************************
        // Append new elements to the newly created div
        $('#testfield').append("<p>"+days[index]+": "+value[ days[index] ]+"</p>");
      });
    };

    runReset = function() {
      $('#testfield').replaceWith('<div id="testfield">This is original text.</div>');
    };
  </script>
</head>
<body>
  <div id="testfield">
    This is original text.
  </div>
  <div>
    <input type="button" value="Run Update" onclick="runUpdate();" />
    <input type="button" value="Reset" onclick="runReset();" />
  </div>
</body>
</html>