json_解码php ajax:为每个用户提供的参数无效

json_解码php ajax:为每个用户提供的参数无效,php,json,Php,Json,这是我的示例json字符串data [{"ratetype":"Y","hotelPackage":"N","roomtype":"Deluxe Double Room","roombasis":",Complimentary Wi-Fi Internet, Breakfast, ","roomTypeCode":"0000015468","ratePlanCode":"0000120709","ratebands":{"validdays":"1111111","wsKey":"fOnrQW3

这是我的示例json字符串
data

[{"ratetype":"Y","hotelPackage":"N","roomtype":"Deluxe Double Room","roombasis":",Complimentary Wi-Fi Internet, Breakfast, ","roomTypeCode":"0000015468","ratePlanCode":"0000120709","ratebands":{"validdays":"1111111","wsKey":"fOnrQW3wP9U6eaST9cxEwNldIVM6N6LdxDrDapJ4gq4xUB8SLli5fMQ6w2qSeIKuoaZbT2or8tYkqYfjzPL9wNTRsJN40fffmk9s1Uz6PbbEOsNqkniCrsHjlG4I7MKBayEyj9KbhxGqp8tN23vC5K+lzg+CLhCVc4A727IY+8t1uCj9hv8OAqYPqiatWpH/7ANOsUaHXl4UGSHhnwqssBs1/1meUilvdkgIrhy7u2+1TW+z1jMN3+lQQ1KvLvexxDrDapJ4gq7WpqakyUIlysQ6w2qSeIKu5a8gxPgjph7EOsNqkniCrumRpycuiwkwcJ1QcdikvX8AIeS1LF1SedADwU6eU9IaCaZCAig5yMBccvSRKT+W+ZsfPoLN5c0IliYMwnHbAfXwhKi3O/+L9SyeKeLupHtA9S+XKwz97LvEOsNqkniCrvIh6xV3cNuuKS12MjOBUQSs4y2qNXPFKw==","extGuestTotal":"0","roomTotal":"4350","servicetaxTotal":"466","discount":"385.0","commission":"0","originalRoomTotal":"3965"}},{"ratetype":"Y","hotelPackage":"N","roomtype":"Super Deluxe Double Room","roombasis":",Complimentary Wi-Fi Internet, Breakfast, ","roomTypeCode":"0000017101","ratePlanCode":"0000120713","ratebands":{"validdays":"1111111","wsKey":"mPRyZ7i+l3d9YkBTbyd4CsQ6w2qSeIKubc0g8TGBVVSbBYEQK7zdOgbJJqjW5wOwiG065xYCyu+vVu5bgidY3mfECYFCkMSIn4KACQv3zPbHDVCqduGZ/cYclnMQGbwGDufqO8lYtnyH9KjpH
下面是ajax请求

$.ajax({
          url:'session.php',
          data:{userdata:JSON.stringify(data)},
          method:"POST",
          success:function(data){
              alert(data);
              console.log(data);
          },
          error:function(err){
             alert('error'+err);
            }
       });
在php中

$arr=json_decode($_POST['userdata']);
foreach($arr as $v){
    print_r($v);
}
获取此错误

为foreach提供的参数无效


您要执行以下操作:

foreach($arr->data as $mydata) {
  echo $mydata->ratetype . "\n";
}

用您正在查找的适当数据替换
ratetype

您的json语法有错误

您的json应该是

 var data =  '[{"ratetype":"Y","hotelPackage":"N","roomtype":"Deluxe Double Room","roombasis":",Complimentary Wi-Fi Internet, Breakfast, ","roomTypeCode":"0000015468","ratePlanCode":"0000120709","ratebands":{"validdays":"1111111","wsKey":"fOnrQW3wP9U6eaST9cxEwNldIVM6N6LdxDrDapJ4gq4xUB8SLli5fMQ6w2qSeIKuoaZbT2or8tYkqYfjzPL9wNTRsJN40fffmk9s1Uz6PbbEOsNqkniCrsHjlG4I7MKBayEyj9KbhxGqp8tN23vC5K+lzg+CLhCVc4A727IY+8t1uCj9hv8OAqYPqiatWpH/7ANOsUaHXl4UGSHhnwqssBs1/1meUilvdkgIrhy7u2+1TW+z1jMN3+lQQ1KvLvexxDrDapJ4gq7WpqakyUIlysQ6w2qSeIKu5a8gxPgjph7EOsNqkniCrumRpycuiwkwcJ1QcdikvX8AIeS1LF1SedADwU6eU9IaCaZCAig5yMBccvSRKT+W+ZsfPoLN5c0IliYMwnHbAfXwhKi3O/+L9SyeKeLupHtA9S+XKwz97LvEOsNqkniCrvIh6xV3cNuuKS12MjOBUQSs4y2qNXPFKw==","extGuestTotal":"0","roomTotal":"4350","servicetaxTotal":"466","discount":"385.0","commission":"0","originalRoomTotal":"3965"}},{"ratetype":"Y","hotelPackage":"N","roomtype":"Super Deluxe Double Room","roombasis":",Complimentary Wi-Fi Internet, Breakfast, ","roomTypeCode":"0000017101","ratePlanCode":"0000120713","ratebands":{"validdays":"1111111","wsKey":"mPRyZ7i+l3d9YkBTbyd4CsQ6w2qSeIKubc0g8TGBVVSbBYEQK7zdOgbJJqjW5wOwiG065xYCyu+vVu5bgidY3mfECYFCkMSIn4KACQv3zPbHDVCqduGZ/cYclnMQGbwGDufqO8lYtnyH9KjpH"}}]';
在html中

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
$(function(){
    $('body').on('click','.ajax',function(){ 
        var id = '[{"ratetype":"Y","hotelPackage":"N","roomtype":"Deluxe Double Room","roombasis":",Complimentary Wi-Fi Internet, Breakfast, ","roomTypeCode":"0000015468","ratePlanCode":"0000120709","ratebands":{"validdays":"1111111","wsKey":"fOnrQW3wP9U6eaST9cxEwNldIVM6N6LdxDrDapJ4gq4xUB8SLli5fMQ6w2qSeIKuoaZbT2or8tYkqYfjzPL9wNTRsJN40fffmk9s1Uz6PbbEOsNqkniCrsHjlG4I7MKBayEyj9KbhxGqp8tN23vC5K+lzg+CLhCVc4A727IY+8t1uCj9hv8OAqYPqiatWpH/7ANOsUaHXl4UGSHhnwqssBs1/1meUilvdkgIrhy7u2+1TW+z1jMN3+lQQ1KvLvexxDrDapJ4gq7WpqakyUIlysQ6w2qSeIKu5a8gxPgjph7EOsNqkniCrumRpycuiwkwcJ1QcdikvX8AIeS1LF1SedADwU6eU9IaCaZCAig5yMBccvSRKT+W+ZsfPoLN5c0IliYMwnHbAfXwhKi3O/+L9SyeKeLupHtA9S+XKwz97LvEOsNqkniCrvIh6xV3cNuuKS12MjOBUQSs4y2qNXPFKw==","extGuestTotal":"0","roomTotal":"4350","servicetaxTotal":"466","discount":"385.0","commission":"0","originalRoomTotal":"3965"}},{"ratetype":"Y","hotelPackage":"N","roomtype":"Super Deluxe Double Room","roombasis":",Complimentary Wi-Fi Internet, Breakfast, ","roomTypeCode":"0000017101","ratePlanCode":"0000120713","ratebands":{"validdays":"1111111","wsKey":"mPRyZ7i+l3d9YkBTbyd4CsQ6w2qSeIKubc0g8TGBVVSbBYEQK7zdOgbJJqjW5wOwiG065xYCyu+vVu5bgidY3mfECYFCkMSIn4KACQv3zPbHDVCqduGZ/cYclnMQGbwGDufqO8lYtnyH9KjpH"}}]';
        $.ajax({ 
        url             :   'server.php', 
        data            :   {"da":id}, 
        method          :   "POST", 
        success:function(data)
        {
            $(".result").html(data);
        }, 
        error:function(err)
        { 
            alert('error'+err); 
        } 
        }); 
    });
});
</script>
</head>
<body>
<input type="button" class="ajax" name="details" value="details">
<div class="result">

</div>
</body>
</html>

$(函数(){
$('body')。在('click','ajax',function(){
var id='[{“ratetype”:“Y”,“hotelPackage”:“N”,“roomtype”:“豪华双人间”,“roombasis”:“免费无线上网,早餐”,“roomTypeCode”:“0000015468”,“ratePlanCode”:“0000120709”,“ratebands”:{“validdays”:“1111111”,“wsKey”:"2.在中国的一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区,一个社区一个社区,一个社区一个社区一个社区一个社区,一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区,YCUIWKWCJ1QCDIKVX8AIES1LF1LDWU6EU9IACAZCAIG5YMBCCVCSRKT+W+ZSFPOLN5CILIYMWNHBAFXWHKI3O/+L9SyeKeLupHtA9S+XKWZ97LVEOSNQNICRVIH6XV3CNUUKS12JOBUQS4Y2QNXPFWKW==,“ExtGuestottal:“0”,“房间总数”:“4350”,“服务税总额”:“466”,“折扣”:“385.0”,“佣金”:“0”,“原始房间总数”:“3965”},{“费率类型”:“Y”,“酒店套餐”:“N”,“超豪华双人房”,“基本客房”:,免费无线上网,早餐,,“房间类型代码”:“0000017101”,“费率计划代码”:“0000120713”,“费率带”:{“validdays”:“1111111”,“wsKey”:“mPRyZ7i+L3D9YKBTBYD4CSQ6W2QSEIKUBC0G8TGBVSBYEQK7ZDOGBJQW5WOWIG065XYCYU+VVU5BGIDY3MFECKMSIN4ACQV3ZPBHDVCQDUGZ/CYCLNMQBWGDUQO8TNYK9JPH”};
$.ajax({
url:'server.php',
数据:{“da”:id},
方法:“张贴”,
成功:功能(数据)
{
$(“.result”).html(数据);
}, 
错误:函数(err)
{ 
警报(“错误”+错误);
} 
}); 
});
});
在php中使用

<?php
$arr= json_decode($_POST['da']);
foreach($arr as $v)
{
    echo "<pre>";
    print_r($v);
    echo "</pre>";
}

?>


try
json\u decode($\u POST['userdata'],true)
,默认情况下
json\u decode
返回一个已尝试但相同的输出echo
var\u dump($arr)
要检查变量中的内容,我将得到以下对象,对象长度(43),stringchange
json.stringify(数据)
to
data
在您的ajax中尝试获取非Objective的属性我正在将其作为ajax请求传递请查看我的ajax请求其自动生成的json然后手动添加…我不知道..我所知道的是您的json语法有错误…:)事实上,我的json格式正确,在放入问题时出现了打字错误OKk然后在ajax中将
JSON.stringify(data)
更改为
data
,并检查是否在页面中完全获得JSON。。。