jQueryAjax中允许混合POST/JSON数据吗?

jQueryAjax中允许混合POST/JSON数据吗?,jquery,json,ajax,post,Jquery,Json,Ajax,Post,我有以下代码,其中通过jQueryAjax方法对服务器进行客户端调用。服务器用JSON对结果进行回复。所有这些都可以正常工作,但我发现解析数据所需的“replace”有些麻烦和奇怪,如果我不加上“[”和“]”字符,代码根本不起作用。有没有关于如何改进的建议 客户端代码: jQuery.ajax({ type: 'POST', url: 'ajax/cart_update.php?lang=en', data: { 'id': id ,

我有以下代码,其中通过jQueryAjax方法对服务器进行客户端调用。服务器用JSON对结果进行回复。所有这些都可以正常工作,但我发现解析数据所需的“replace”有些麻烦和奇怪,如果我不加上“[”和“]”字符,代码根本不起作用。有没有关于如何改进的建议

客户端代码:

    jQuery.ajax({
    type: 'POST',
    url: 'ajax/cart_update.php?lang=en',
    data: { 
        'id': id ,
        'incr' : increment,
        'quantity' : jQuery("#quantity_number" + id).val(), 
        'final_quantity' : final_quantity,
    },
    success: function(data){
        var data = data.replace("[", "");
        data = data.replace("]", "");
        if(data != ""){
            var obj = jQuery.parseJSON(data);
            jQuery("#quantity_number" + id).val(obj.quantity);
            jQuery("#total" + id).html(obj.price);
        } // if
    }
});
服务器(PHP)代码:

输出为字符串:[{“数量”:“8”,“价格”:“$1756.00”}]

为什么我需要加上“[”和“]”字符?

如果不加上“[”和“]”字符并解析响应json,它将是一个对象数组。你需要在这个数组上循环,在循环中你可以访问每个对象的属性。 您当前的代码暂时有效,因为数组中很可能只有一项。但是,如果要获得多个项目,当前代码也将中断。

如果不禁止“[”和“]”字符并解析响应json,它将是一个对象数组。你需要在这个数组上循环,在循环中你可以访问每个对象的属性。
您当前的代码暂时有效,因为数组中很可能只有一项。但是,如果要获得多个项目,当前代码也将中断。

您可以循环数组并获得结果

var obj = jQuery.parseJSON(data);
$.each(obj, function(index, value) {
  $("#quantity_number" + id).val(value.quantity);
  $("#total" + id).html(value.price);
});

您可以循环数组并获得结果

var obj = jQuery.parseJSON(data);
$.each(obj, function(index, value) {
  $("#quantity_number" + id).val(value.quantity);
  $("#total" + id).html(value.price);
});

实际上,您正试图从json响应中获得一个对象。使用迭代器(如jquery中的
$)和
for..in中的
for.)以及纯js中的
$)很容易获得:

您可以将其与迭代器一起使用,如
$。each()

jQuery.ajax({
键入:“POST”,
url:'ajax/cart_update.php?lang=en',

//数据类型:'json',//实际上,您正试图从json响应中获得一个对象。这很容易通过迭代器获得,如
$。jquery中的each()
,以及使用纯js的
for..in
等:

您可以将其与迭代器一起使用,如
$。each()

jQuery.ajax({
键入:“POST”,
url:'ajax/cart_update.php?lang=en',

//数据类型:“json”,服务器向您发送了json对象列表,因此您需要删除“[”和“]”。直接解析您的数据和用户数组对象进行迭代

下面的例子可以帮助您

var数据=“[{“cantidad”:“8”,“precio”:“$1756.00”},{“sadsad”:“8”,“precio”:“$1756.00”}]”


服务器向您发送了JSON对象列表,因此您需要删除“[”和“]”。直接解析数据和用户数组对象以进行迭代

下面的例子可以帮助您

var数据=“[{“cantidad”:“8”,“precio”:“$1756.00”},{“sadsad”:“8”,“precio”:“$1756.00”}]”


您不需要使用replace函数。只需解析返回的字符串即可。使用以下代码

jQuery.ajax({
type: 'POST',
url: 'ajax/cart_update.php?lang=en',
data: { 
    'id': id ,
    'incr' : increment,
    'quantity' : jQuery("#quantity_number" + id).val(), 
    'final_quantity' : final_quantity,
},
success: function(data){
    if(data != ""){
        var obj = JSON.parse(data);
        jQuery("#quantity_number" + id).val(obj[0].quantity);
        jQuery("#total" + id).html(obj[0].price);
    } // if
  }
});

您不需要使用replace函数。只需解析返回的字符串即可。使用以下代码

jQuery.ajax({
type: 'POST',
url: 'ajax/cart_update.php?lang=en',
data: { 
    'id': id ,
    'incr' : increment,
    'quantity' : jQuery("#quantity_number" + id).val(), 
    'final_quantity' : final_quantity,
},
success: function(data){
    if(data != ""){
        var obj = JSON.parse(data);
        jQuery("#quantity_number" + id).val(obj[0].quantity);
        jQuery("#total" + id).html(obj[0].price);
    } // if
  }
});

请,添加一些解释!:)请,添加一些解释!:)工作起来像个符咒,谢谢。我忘了我正在发回一个数组,因为它本身就是要json化的源。感谢所有其他贡献者的回复。工作起来像个符咒,谢谢。我忘了我正在发回一个数组,因为它本身就是要json化的源。感谢所有其他贡献者感谢他们的答复。