【问题标题】:how to remove extra square bracket in json format?如何删除json格式的多余方括号?
【发布时间】:2022-01-27 05:27:36
【问题描述】:

这是我的 json 响应:

{"risultato":"1","ris":[[{"pda":"788","num1":"83","num2":"10","num3":"207410"},{"pda":"232","num1":"83","num2":"14","num3":"204935"}]]}

您可以看到有一个额外的方括号,我该如何删除它? 我想要这样的结果:

{"risultato":"1","ris":[{"pda":"788","num1":"83","num2":"10","num3":"207410"},{"pda":"232","num1":"83","num2":"14","num3":"204935"}]}

php:

$stmtcarte = $connection->prepare("SELECT GROUP_CONCAT(concat.pda) as pda, GROUP_CONCAT(concat.num1) as num1,GROUP_CONCAT(concat.num2) as num2, GROUP_CONCAT(concat.num3) as num3 FROM (SELECT pda, num1, num2, num3 FROM giocatori WHERE categoria=? ORDER BY RAND() LIMIT 2 ) concat");

        $categoria=$categoriaselezionata;
        $stmtcarte->bind_param("s",$categoria);
        $stmtcarte->execute();
        $risultatocarte = $stmtcarte->get_result();
        $numero_giocatori = $risultatocarte->num_rows;
        $result=array("risultato"=>"1", "ris"=>"");
        while($rispostacarte=$risultatocarte->fetch_assoc()){

              $result['ris']=array($rispostacarte);
              $ris = $result["ris"][0];
              $tempRis = [];
              foreach ($ris as $key => $value) {
              $explodedArray = explode(",", $value);
              $length = count($explodedArray);
              for ($i=0; $i < $length ; $i++) { 
              $tempRis[$i][$key] = $explodedArray[$i];
    }
}
            $result["ris][0] = $tempRis;
            echo json_encode($result);
            
              
        }
        $stmtcarte->close();

【问题讨论】:

  • JSON 中不存在“额外”括号。您的 JSON(响应和期望)不等价。
  • 这里有语法错误$result["ris][0]
  • 并删除$result["ris"][0]中的[0]

标签: php mysql


【解决方案1】:

您可以使用简单的代码,例如:

<?php

$query = "SELECT pda, num1, num2, num3 
        FROM giocatori WHERE categoria=? 
        ORDER BY RAND() 
        LIMIT 2";

// get DB data using PDO
$stmt = $pdo->prepare($query);
$stmt->execute([$category]);

$risultato = [
    'risultato' => 1,
    'ris'=>[]
];

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $risultato['ris'][] = $row;
}

print_r(json_encode($risultato, JSON_PRETTY_PRINT));

Test PHP & MySQL code here

结果:

{
    "risultato": 1,
    "ris": [
        {
            "pda": "788",
            "num1": "83",
            "num2": "10",
            "num3": "207410"
        },
        {
            "pda": "232",
            "num1": "83",
            "num2": "14",
            "num3": "204935"
        }
    ]
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多