Jquery如何输出单个json值?

时间:2015-10-23 20:06:30

标签: javascript jquery

我正在尝试获取单个json值并以下面的格式输出值。 它目前没有返回任何单个值。

如何正确输出所有单个值?

我的例子在这里Jquery with JSON fiddle 例如

console.log(" nestedValue  name" + nestedKey + "--------" + nestedValue.name);
console.log(" nestedValue shortURL" + nestedKey + "---------" + nestedValue.shortURL);
console.log(" nestedValue parenthicalCategory1" + nestedKey + "---------" + nestedValue.parenthicalCategory1);
console.log(" nestedValue parenthicalCategory2" + nestedKey + "---------" + nestedValue.parenthicalCategory2);
console.log(" nestedValue keyword" + nestedKey + "---------" + nestedValue.keyword);
console.log(" nestedValue shortDesc" + nestedKey + "---------" + nestedValue.shortDesc);
console.log(" nestedValue isRenew" + nestedKey + "---------" + nestedValue.isRenew);
console.log(" nestedValue isApply" + nestedKey + "---------" + nestedValue.isApply);

的JavaScript

var  jsonVals='';
jQuery.each(jsonObject, function(key, value) {

    if(key == "filters")
    {
        jQuery.each(value, function(nestedKey, nestedValue) 
        {
            var objectKey = Object.keys(nestedValue)[0];
            var objectVal = eval("nestedValue['"+objectKey+"']");
            //console.log(eval("nestedValue['"+objectKey+"']"));
            $("#filters").append(objectKey + '------------' +  objectVal + '<br/>' );
        });

    }

    if(key == "data")
    {
        jQuery.each(value, function(nestedKey, nestedValue) 
        {
            jQuery.each(nestedValue.azIndexDescPages, function(nestedKey, nestedValue) 
            {


                jQuery.each(nestedValue, function(nestedKey, nestedValue) 
                {   
                     console.log(nestedValue);
                ///$("#data").append(nestedKey + '------------' +  nestedValue + '<br/>' );

                    /////////////////////////////////////////

jsonVals +='<div class="id" >nestedValue  guid ' + nestedKey + '--------' + nestedValue.guid+'</div>';
jsonVals +='<div class="name">nestedValue  name' + nestedKey + '--------' + nestedValue.name +'</div>';
jsonVals +='<div class="url"> nestedValue shortURL' + nestedKey + '--------' + nestedValue.shortURL+'</div>';
jsonVals +='<div class="keyword"> nestedValue keyword' + nestedKey + '--------' + nestedValue.keyword+'</div>';
jsonVals += '<div class="desc">nestedValue shortDesc' + nestedKey + '--------' + nestedValue.shortDesc+'</div>';
jsonVals +='<div class="renew"> nestedValue isRenew' + nestedKey + '--------' + nestedValue.isRenew+'</div>';




                    //////////////////////////////////////////

                });





            });



                // $("#data").append('<br /><br />');
               $("#data").append(jsonVals);

        });

    }
});

3 个答案:

答案 0 :(得分:0)

如果问题是你无法在json中获取所有遍历的对象,那么这种类型的函数应该可以工作,并引导你正确的方向。

function loop(obj) {
$.each(obj, function(key, val) {
    if(val && typeof val === "object") { // object, call recursively          
        loop(val);
    } else {
            KEY: VAL
    }
});

}

答案 1 :(得分:0)

jQuery.each的第三次迭代现在已经下降到azIndexDescPages对象的属性级别。所以备份一次迭代:http://jsfiddle.net/zttgp2L5/14/

    if(key == "data")
    {
        jQuery.each(value, function(nestedKey, nestedValue) 
        {
            jQuery.each(nestedValue.azIndexDescPages, function(nestedKey, nestedValue) 
            {
                 console.log(nestedValue);
                        jsonVals +='<div class="id" >nestedValue  guid ' + nestedKey + '--------' + nestedValue.guid+'</div>';
                        jsonVals +='<div class="name">nestedValue  name' + nestedKey + '--------' + nestedValue.name +'</div>';
                        jsonVals +='<div class="url"> nestedValue shortURL' + nestedKey + '--------' + nestedValue.shortURL+'</div>';
                        jsonVals +='<div class="keyword"> nestedValue keyword' + nestedKey + '--------' + nestedValue.keyword+'</div>';
                        jsonVals += '<div class="desc">nestedValue shortDesc' + nestedKey + '--------' + nestedValue.shortDesc+'</div>';
                        jsonVals +='<div class="renew"> nestedValue isRenew' + nestedKey + '--------' + nestedValue.isRenew+'</div>';
           });

       });

       $("#data").append(jsonVals);
   }

答案 2 :(得分:0)

只需用以下代码替换您的代码:

//CODE
var jsonVals='';
jQuery.each(jsonObject, function(key, value) {
  if(key == "filters")
  {
    jQuery.each(value, function(nestedKey, nestedValue) 
  {
    var objectKey = Object.keys(nestedValue)[0];
    var objectVal = eval("nestedValue['"+objectKey+"']");
    //console.log(eval("nestedValue['"+objectKey+"']"));
    $("#filters").append(objectKey + '------------' +  objectVal + '<br/>' );
    });
  }
  if(key == "data")
  {
    jQuery.each(value, function(nestedKey, nestedValue) 
    {
      jQuery.each(nestedValue.azIndexDescPages, function(nestedKey, nestedValue) 
        {
          jQuery.each(nestedValue, function(nestedKey, nestedValue) 
          { 
            $("#data").append('<div class="id" >nestedValue  ' + nestedKey + '--------' + nestedValue+'</div><br>');
        });
      });             
    });
  }
});
//CODE