删除json格式中多余的方括号


To remove extra square bracket in json format

我正试图从数据库中获取json数据,结果中显示了一个额外的方括号。由于这个原因,我的结果出现了错误。如何从JSON结果中删除这个额外的括号。

 [[{"Item_Name":"banana","Unit":"Kg","Price":0,"Discount":0},{"Item_Name":"banana","Unit":"Kg","Price":0,"Discount":0}]]

PHP代码

<?php 

    require_once('include/dbConnect.php');
    $sql = "SELECT * FROM Items WHERE User_Id='1011'";
    $r = mysqli_query($con,$sql);
    //$res = mysqli_fetch_array($r);
    $result = array();
    while($res = mysqli_fetch_array($r, MYSQL_ASSOC)) {
        array_push($result,array(
            "Item_Name"=> $res['Item_Name'],
            "Unit" => $res['Unit'],
            "Price" => $res['Price'],
            "Discount" => $res['Discount'])
        );
    }
    echo json_encode($result);
    mysqli_close($con);
?>

您的PHP代码中没有任何错误。

由于您在PHP中创建数组,因此json_encode将为您提供对象数组。

要查看php数组的确切内容,请使用print_r($your_array_variable),不要使用echo打印数组。

更新1:

可能的原因可能是

对json_encode()的另一个调用位于代码

您可以使用:

$object = json_encode($array, JSON_FORCE_OBJECT);

更新时间:

只需将echo json_encode(array($result));替换为echo json_encode($result);

<?php   require_once('include/dbConnect.php'); 
$sql = "SELECT * FROM Items WHERE User_Id='1011'"; 
$r = mysqli_query($con,$sql);
//$res = mysqli_fetch_array($r); 
$result = array(); 
while($res = mysqli_fetch_array($r, MYSQL_ASSOC)) 
{   
    array_push($result,array( "Item_Name"=> $res['Item_Name'], "Unit" => $res['Unit'], "Price" => $res['Price'], "Discount" => $res['Discount']));
} 
echo json_encode($result); 
mysqli_close($con)

如果你的意思是去掉第一个和最后一个括号,我相信你只需要像数组中那样得到第一个值。

具体实现可能取决于您的编程语言。

var A = [[{"Item_Name":"banana","Unit":"Kg","Price":0,"Discount":0}, {"Item_Name":"banana","Unit":"Kg","Price":0,"Discount":0}]];
var B = A[0]; 

    require_once('include/dbConnect.php');
    $sql = "SELECT Item_Name,Unit,Price,Discount,Remaining_Count FROM Items WHERE User_Id='1011'";
    $r = mysqli_query($con,$sql);
    //$res = mysqli_fetch_array($r);
    $result = array();
            while($row = mysqli_fetch_assoc($r)) {      
                    $result[]=$row; }
    $data =  json_encode($result);
    print_r($data);
    mysqli_close($con);