Paring Json Array in php


Paring Json Array in php

大家好,我遇到了一个问题。我想解析该数组,然后将其存储到 MySQL 数据库中,但代码不起作用。我的代码如下。提前谢谢。

String timeArray;
JSONArray jss=new JSONArray();
        for(int i=0;i<time.size();i++){
            jss.put(time.get(i));
        }
    timeArray=jss.toString();

我的服务器端代码是

$myArray=$_POST['items'];// here i receive ["3:02","9:12","12:20"]
$myArray1=json_decode($myArray);
   foreach($myArray1 as $row){
        $sql="INSERT INTO `time`(`time`) VALUES('$row')";
        mysql_query($sql) or die("Problem occured while inserting");
   }
如果你想

json_encode返回一个数组,你需要调用函数,并将可选的assoc参数设置为true

$myArray1=json_decode($myArray, true);

否则json_decode将返回一个对象而不是数组。有关详细信息,请参阅 PHP 手册以获取json_decode

编辑:您需要发布有关不起作用的更多详细信息,包括错误消息,以获得帮助。您的代码中有太多变量,我无法查明问题所在。运行以下代码:

$myArray1=json_decode('["3:02","9:12","12:20"]', true);
foreach($myArray1 as $row){
    echo "INSERT INTO `time`(`time`) VALUES('$row');'n";
}

输出:

INSERT INTO `time`(`time`) VALUES('3:02');
INSERT INTO `time`(`time`) VALUES('9:12');
INSERT INTO `time`(`time`) VALUES('12:20');

因此,您的问题实际上可能不是由将 JSON 数据解析为 PHP 数组引起的。我要检查的第一件事是在尝试插入查询之前,您是否实际上已经成功创建了与数据库的连接。

您要做的就是:

$myArray=json_decode($_POST['items']);
foreach($myArray as $time){
    $sql="INSERT INTO `time`(`time`) VALUES('$time')";
    mysql_query($sql) or die("Problem occured while inserting");
}

避免SQL注入,通过转义post值,或升级到mysqli准备语句。

编辑:

@arsalanqamar您说它在注释中硬编码时有效,这意味着您没有收到 JSON

您的 POST 对值应如下所示:

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("items", timeArray));