2017-02-28 50 views
-3

我要轉換的JSON文件鍵:值對,用於如何使用PHP或JS將JSON轉換爲值 - 密鑰對?

[ 
    {"value":"apple","label":"apple"}, 
    {"value":"Google","label":"Google"} 
    ] 

像下面鍵:值對格式,這樣

{ 
"apple": "apple", 
"google": "google", 
    ....... 
    ..... 
    ...... 
    ...... 
} 

因此,任何人能告訴我我怎麼能這樣做,下面是PHP文件代碼,其中我從psql數據庫中獲取數據並將其存儲在文件中。

dbconn.php

<?php 
$db = pg_connect("host=localhost port=5432 dbname=postgres  user=postgres password=root123"); 
pg_select($db, 'post_log', $_POST); //selecting database 


    $query=pg_query("SELECT name FROM account"); 
$json=array(); 

    while($student=pg_fetch_array($query)){ 
     $json[]=array(
        'value'=> $student["name"], 
        'label'=>$student["name"]); 
    } 


$textval = json_encode($json); //encoding 
file_put_contents('textvalues.txt', $textval); 

?> 

回答

1

要獲得單個對象與鍵/值對使用以下簡單的方法:

... 
while ($student = pg_fetch_array($query)) { 
    $json[$student["name"]] = $student["name"]; 
} 
... 
+0

感謝羅馬人,你解決了我的問題,最後一件事我該如何追加結果,在一個文本文件文件後r var data = {「apple」:「apple」,「Google」:「Google」,。 。 。 。 。 。 。 。 。 。 。 。 }「 –

+0

使用'file_put_contents('textvalues.txt',$ textval,FILE_APPEND)'將數據附加到文件而不是覆蓋它 – RomanPerekhrest

+0

謝謝,但是當我再次運行文件時,它會附加上以前的數據。因此,如何刷新文件得到刷新前的變化 –

1

做,在這種方式(在foreach):

$obj = new stdClass(); 
    $obj->label=1; 
    $obj->value=2; 
    $json[]=$obj; 

    $obj = new stdClass(); 
    $obj->label=3; 
    $obj->value=4; 
    $json[]=$obj; 

    print_r(json_encode($json)); 

結果[{"label":1,"value":2},{"label":3,"value":4}]

或只有一個對象

$obj = new stdClass(); 

    $array = [['name'=>'test'],['name'=>'foo']]; 

    foreach($array as $var) 
     $obj->{$var['name']}=$var['name']; 

    print_r(json_encode($obj)); 

結果{"test":"test","foo":"foo"}

注:我用stdClass在這裏,所以你感到沉淪可以直接看到什麼將成爲JSON(對象太),不應該與索引鍵使用。 print_r(json_encode([1,'foo'=>'sadsd']));將變成{"0":1,"foo":"sadsd"},那不錯。

0

只要改變而循環

while($student=pg_fetch_array($query)){ 
$student_name=$student['name']; 
$res[$student_name] =$student_name; 
array_push($json,$res); 
} 
echo json_encode($return_arr); 

這將在此格式返回JSON字符串:

[{"xyz":"xyz"},{"abc":"abc"}] 
相關問題