如何格式化json文件?

时间:2017-09-19 17:17:10

标签: php json mysqli

我是JSON的新手,我想知道如何格式化我的JSON文件,以便能够在条形图中呈现它。

我有以下PHP代码:

<?php

$search_value=$_POST["search"];
$mysqli = new mysqli('localhost','root','password','mydb');
$myArray = array();
if ($result = $mysqli->query("SELECT * FROM transcriptome WHERE genename LIKE '%$search_value%'")) {

    while($row = $result->fetch_array(MYSQL_ASSOC)) {
            $myArray = $row;
    }
    file_put_contents('jsonoutput.json', json_encode($myArray));
    echo json_encode($myArray);
}

$result->close();
$mysqli->close();
?>

我的实际输出: (给定基因(xkr4)作为输入)

{"genename":"xkr4","TA11MEAN":"974.25","TA11STD":"99.0085223605","TA21MEAN":"710.75","TA21STD":"115.79831605","TA22MEAN":"736.5","TA22STD":"115.79831605","TA23MEAN":"903.75","TA23STD":"107.283211641","TB11MEAN":"799.25","TB11STD":"97.2660655111","TB21MEAN":"658","TB21STD":"91.7959694104","TB22MEAN":"592.75","TB22STD":"70.9379129944","TB23MEAN":"864","TB23STD":"92.7280971443"}

我如何得到我的输出:

{"genename":"xkr4",{"TA11MEAN":"974.25"},{"TA11STD":"99.0085223605"},{"TA21MEAN":"710.75"},{"TA21STD":"115.79831605"},{"TA22MEAN":"736.5"},{"TA22STD":"115.79831605"},{"TA23MEAN":"903.75"},{"TA23STD":"107.283211641"},{"TB11MEAN":"799.25"},{"TB11STD":"97.2660655111"},{"TB21MEAN":"658"},{"TB21STD":"91.7959694104"},{"TB22MEAN":"592.75"},{"TB22STD":"70.9379129944"},{"TB23MEAN":"864"},{"TB23STD":"92.7280971443"}}

如果有人可以给我指示(或解决它),那就太棒了!

提前致谢:)

3 个答案:

答案 0 :(得分:0)

我建议你先检查一下如何在数组中获取数据。 $ myArray []应该填充数据,如下所示。然后使用JSON_PRETTY_PRINT。

    /*USED TO SHOW FULL ARRAY SIZE*/
    ini_set('xdebug.var_display_max_depth', -1);
    ini_set('xdebug.var_display_max_children', -1);
    ini_set('xdebug.var_display_max_data', -1);


    $myArray=array("genename"=>array(array("xkr4"=>array(
    array("TA11MEAN"=>"974.25","TA11STD"=>"99.0085223605"),
    array("TA21MEAN"=>"710.75","TA21STD"=>"115.79831605"),
    array("TA22MEAN"=>"736.5","TA22STD"=>"115.79831605"),
    array("TA23MEAN"=>"903.75","TA23STD"=>"107.283211641"),
    array("TB11MEAN"=>"799.25","TB11STD"=>"97.2660655111"),
    array("TB21MEAN"=>"658","TB21STD"=>"91.7959694104"),
    array("TB22MEAN"=>"592.75","TB22STD"=>"70.9379129944"),
    array("TB23MEAN"=>"864","TB23STD"=>"92.7280971443"),

))));
$jsonData=json_encode($myArray,JSON_PRETTY_PRINT);

var_dump($jsonData);

答案 1 :(得分:0)

for(int i = 0; i < rows; i++) // loop to cycle through cells in array table
    for(int j = 0; j < columns; j++)
        array[i][j] = 0;

答案 2 :(得分:0)

我解决了它:

<?php

$search_value=$_POST["search"];
$mysqli = new mysqli('localhost','root','password','mydb');
$myArray = array();
if ($result = $mysqli->query("SELECT * FROM transcriptome WHERE genename LIKE '%$search_value%'")) {


     while($row = $result->fetch_array(MYSQL_ASSOC)) {
     $myArray = $row;
     }
     //file_put_contents('jsonoutput.json', json_encode($myArray));
     $json = json_encode($myArray);
     $array = json_decode($json, true);

     $new_array = array();  
     foreach( $array as $key => $value ){
     $newarray[] = array($key=>$value); 
     }

echo json_encode($newarray);
file_put_contents('jsonoutput.json', json_encode($newarray));



}


$result->close();
$mysqli->close();
?>