2017-05-20 150 views
0

我試圖在代表以下JSON結構的PHP變量創建JSON:創建自定義JSON佈局PHP

{ 
    "nodes": [ 
    {"id": "[email protected]", "group": 1}, 
    {"id": "Device ID 0eb6823c8e826b6ba6a4fba7459bc77c", "group": 2}, 
    {"id": "Device ID 9057673495b451897d14f4b55836d35e", "group": 2} 
    ], 
    "links": [ 
    {"source": "[email protected]", "target": "Exact ID 0eb6823c8e826b6ba6a4fba7459bc77c", "value": 1}, 
    {"source": "[email protected]", "target": "Exact ID 9057673495b451897d14f4b55836d35e", "value": 1} 
    ] 
} 

我目前不能確定最好的方式做這將是自己手動格式化JSON佈局,或者如果使用數組和json_encode()可以實現上述結構。這將是一件好事,有人可以首先確認這裏的最佳方法。

我目前擁有的代碼是:

$entityarray['nodes'] = array(); 
$entityarray['links'] = array(); 
$entityarray['nodes'][] = '"id": "[email protected]", "group": 1'; 
$entityarray['nodes'][] = '"id": "Device ID 0eb6823c8e826b6ba6a4fba7459bc77c", "group": 2'; 
$entityarray['links'][] = '"source": "[email protected]", "target": "Exact ID 0eb6823c8e826b6ba6a4fba7459bc77c", "value": 1'; 

但是當我查看JSON格式的輸出有一些問題:

{ 
    "nodes": ["\"id\": \"[email protected]\", \"group\": 1", "\"id\": \"Device ID 0eb6823c8e826b6ba6a4fba7459bc77c\", \"group\": 2"], 
    "links": ["\"source\": \"[email protected]\", \"target\": \"Exact ID 0eb6823c8e826b6ba6a4fba7459bc77c\", \"value\": 1"] 
} 

正如你可以看到json_encode造成額外的引號要添加轉義\字符,並且每個條目不作爲對象存儲。您可以提供的任何指導將真誠地感謝。

+0

'PHP的json_encode'會做,更好的利用它來避免錯誤,如果你有一個前端,你可以使用'JSON.parse(object)'或者如果你有Jquery,你也可以使用'$ .parseJSON(object)' –

+1

[使用PHP創建JSON對象](http://stackoverflow.com/q/20382369/6521116) –

回答

1

最好是使用json_encode,請注意,您應該使用數組一路:

$entityarray['nodes'][] = array('id' => '[email protected]' 
           , 'group' => 1 
           ); 
+0

謝謝薩爾。這正是我所錯過的。在你回答之前,我設法弄清楚了那些時刻。最終,我用: $ testarray ['nodes'] [] = array(「id」=>「[email protected]」,「group」=> 1); 而那個伎倆:)謝謝隊友! – aktive

0

試試這個

$result = array(); 


$nodes_array = array(); 

$temp = array(); 
$temp["id"] = "[email protected]"; 
$temp["group"] = 1; 

$nodes_array[] = $temp; 

$temp = array(); 
$temp["id"] = "Device ID 0eb6823c8e826b6ba6a4fba7459bc77c"; 
$temp["group"] = 2; 

$nodes_array[] = $temp; 

$temp = array(); 
$temp["id"] = "Device ID 9057673495b451897d14f4b55836d35e"; 
$temp["group"] = 2; 

$nodes_array[] = $temp; 



$links_array = array(); 
$temp = array(); 
$temp["source"] = "[email protected]"; 
$temp["target"] = "Exact ID 0eb6823c8e826b6ba6a4fba7459bc77c"; 
$temp["value"]  =1; 

$links_array[] = $temp; 

$temp = array(); 
$temp["source"] = "[email protected]"; 
$temp["target"] = "Exact ID 9057673495b451897d14f4b55836d35e"; 
$temp["value"]  =1; 


$links_array[] = $temp; 


$result["nodes"] = $nodes_array; 
$result["links"] = $links_array; 





echo json_encode($result);