2017-09-19 10 views
0

私はJSONの初心者です。JSONファイルをどのようにフォーマットしてbarchartでレンダリングできるようになったのかと思います。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(); 
?> 

私の実際の出力: 私が取得したいのですがどのように

{"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"} 

(入力として遺伝子(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"}} 

もし誰かが私にこの方向を教えてくれれば(それを解決してください)、それは素晴らしいことでしょう!

+5

'json_encode($データ、JSON_PRETTY_PRINT)' – Sammitch

+0

あなたはこれはかなり印刷必要あなたは確かにいますか? JS、またはJSONをデコードするために使用しているものは、有効なJSONであれば気にしません。 – JimL

+0

JSONのスタイルや美しさを気にするのは意味がありません。 –

答えて

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); 
0
$json_from_database='[{"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"}]'; 

//print decode array from databse 
$decoded=json_decode($json_from_database); 

var_dump($decoded); 
foreach ($decoded[0] as $key => $value) { 
    echo "\n "; 
    print $key; 
    print " " .$decoded[0]->$key; 
} 
array(1) { 
    [0]=> 
    object(stdClass)#1 (17) { 
    ["genename"]=> 
    string(4) "xkr4" 
    ["TA11MEAN"]=> 
    string(6) "974.25" 
    ["TA11STD"]=> 
    string(13) "99.0085223605" 
    ["TA21MEAN"]=> 
    string(6) "710.75" 
    ["TA21STD"]=> 
    string(12) "115.79831605" 
    ["TA22MEAN"]=> 
    string(5) "736.5" 
    ["TA22STD"]=> 
    string(12) "115.79831605" 
    ["TA23MEAN"]=> 
    string(6) "903.75" 
    ["TA23STD"]=> 
    string(13) "107.283211641" 
    ["TB11MEAN"]=> 
    string(6) "799.25" 
    ["TB11STD"]=> 
    string(13) "97.2660655111" 
    ["TB21MEAN"]=> 
    string(3) "658" 
    ["TB21STD"]=> 
    string(13) "91.7959694104" 
    ["TB22MEAN"]=> 
    string(6) "592.75" 
    ["TB22STD"]=> 
    string(13) "70.9379129944" 
    ["TB23MEAN"]=> 
    string(3) "864" 
    ["TB23STD"]=> 
    string(13) "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 
This is how your data looks like from database it is a array of rows row is a object 
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(); 
?> 
関連する問題