ios传来的json是   (
   {"a":"1","b":"2","c":"3"}, {"a":"2","b":"3","c":"4"}, {"a":"3","b":"7","c":"6"}
)
传来的键名都是一样的,只是值不一样。 php应该如何接收,并做循环添加? $str = $HTTP_RAW_POST_DATA;这个获取

解决方案 »

  1.   

    print_r(json_decode($str, 1));
    看看是什么
      

  2.   

    ios给你的压根不是合法的json
    将最外围的()替换成[]才可以
    然后用#1的代码解析成php数组
      

  3.   

    json_decode =>array
    foreach{
      $sql=''
    ....
    }
      

  4.   

     $str = $HTTP_RAW_POST_DATA;
     $js = json_decode($str);
     $phone = $js->phone;
    我是这么接的ios传来的数据。  
    但是如果直接调用$phone 是有值的,但是好像不是数组。 foreach ($js as $arr) {
          $gid = $arr['gid'];
          $sql = "insert into t_order (gid) values ('$gid'')";
          // 省略 mysql_query 
    }
    这段话我自己测试的话是可以的。 就是现在弄不懂不知道他传的数据,php解析了以后是什么格式。。
      

  5.   

    echo $str;
    都是什么呢?由于是 iso 传来的,你需要在 ISO 端看
    但可在 php 端保存到文件,再看$str = $HTTP_RAW_POST_DATA;
    file_put_contents('test.txt', $str);查看 test.txt 文件
      

  6.   


    看到了 是 正常json格式。  我想把他转成数组。。
    用print_r(json_decode($str,1));
    这样可以。但是我想保存到一个变量中。 然后遍历做insert插入。
    现在保存到变量中,$a = print_r(son_decode($str,1));
    页面输出效果是Array
    (
        [0] => Array
            (
                [gid] => 150129090425
            )    [1] => Array
            (
                [gid] => 150129090830
            )
    )
    1
    这下面还有个1。  这个怎么解决一下?