如何从JSON响应获得价值

如何从JSON响应获得价值

问题描述:

我从服务器得到如下回应:如何从JSON响应获得价值

{ “紫苑”: “3”, “水仙”: “4”, “玫瑰”: “3”,” TOTALITEMS “:10,” totalPrice “:” 31.90" } RESPONSE

而且,我希望把它放在桌上,将是这样的:

enter image description here

的问题是,我做的不知道如何获取值(对于“数量”列)。这是我的代码:

function processServerResponse(data) { 
if (data.products.length > 0) { 
    $("#orderForm").hide(); 
    $("#summaryForm").show(); 
    var html = ''; 
    $.each(data.products, function(key, value) { 
     html += "<tr><td>"+value.name+"</td><td>"+?????+"</td></tr>" 
    }); 
    $(html).appendTo("tbody"); 
    $("#totalItems").text(data.totalItems); 
    $("#totalPrice").text(data.totalPrice); 
} 

}

在此之前,这是我的$就怎么样子(这是更大的代码,你不”已读出来):

$("#orderForm button").click(function (e) { 
    e.preventDefault(); 
    var formData = $("#orderForm").serialize(); 
    $("#popup").show(); 
    $("body *").not("#popup").css("opacity", 0.5); 
    $("input").prop("disabled", true); 
    $.ajax({ 
     url: "http://localhost/", 
     type: "post", 
     data: formData, 
     dataType: "json", 
     dataFilter: function(data, dataType) { 
      primljeniOdgovor = $.parseJSON(data); 
      var cleanData = { 
       totalItems: primljeniOdgovor.totalItems, 
       totalPrice: primljeniOdgovor.totalPrice 
      }; 
      delete primljeniOdgovor.totalItems; 
      delete primljeniOdgovor.totalPrice; 
      cleanData.products = []; 
      for (prop in primljeniOdgovor) { 
       cleanData.products.push({ 
        name: prop, 
        quantity: data[prop] 
       }) 
      } 
      return cleanData; 
     }, 
     converters: { 
      "text json": function(data) { 
       return data; 
      } 
     }, 
     success: function(data) { 
      processServerResponse(data); 
     }, 
     complete: function() { 
      setTimeout(function() { 
       $("#popup").hide(); 
       $("body *").not("#popup").css("opacity", 1); 
       $("input").prop("disabled", false); 
      }, 1500); 
     } 
    }); 
}) 

我通过value.name得到了该响应的名称,但我不知道如何获得该值(数量)?

+1

'value.quantity' ?? – Brett 2015-02-10 19:53:07

代码中有错误。

它必须是

   cleanData.products.push({ 
        name: prop, 
        quantity: primljeniOdgovor[prop] //not data[prop] 
       }) 

,而不是quantity: data[prop]data只是一个未解析的String对象。 primljeniOdgovor是包含属性值的解析对象。

请参阅http://jsfiddle.net/t7n2tafk/

+0

这就是问题所在!纠正这个错误之后 - 一切工作正常(value.quantity)。非常感谢你和 – PeraMika 2015-02-11 07:22:37

+0

不客气。请检查我的答案作为解决方案。谢谢。 – andy 2015-02-12 08:09:50