2016-05-13 55 views
1

我想在主JSON的特定部分合並Laravel 5.2中的JSON文件。合併JSON文件在Laravel 5.2在主JSON的特定部分

案例: 我有一個主要的config.json

{ 
    "layout": "normal", 
    "modules": [ 
    "module1", "module2", "module3" 
    ] 
} 

我有很多模塊JSON文件,它看起來像這樣(minimalised值這個問題):

{ 
    "name": "module1", 
    "description": "lorem ipsum" 
} 

我想實現的是:在「modules」是(module1,module2等)的部分,我想在eachother之後加載其他json文件並保存文件。他們每個人都爲一個對象,因此它非常像:

{ 
    "layout": "normal", 
    "modules": [ 
    { 
     "name": "module1", 
     "description": "lorem ipsum" 
    }, 
    { 
     "name": "module2", 
     "description": "lorem ipsum" 
    } 
} 

所有文件都存儲在ressources /資產/ JSON和每個JSON具有模塊名作爲文件名是這樣的:

/json 
    _module1.json 
    _module2.json 
    .... 

問:如何在Laravel 5.2中實現這一點?

回答

0

PHP不提供直接處理JSON數據的可能性。爲了在PHP中向JSON添加數據,您需要首先將其解碼爲關聯數組,然後更新數據,然後再編碼爲JSON。

下應該做的伎倆:

// decode original JSON 
$decodedData = json_decode($json, true); 

// read and decode data for all listed modules into an array  
$moduleData = []; 
foreach ($decodedData['modules'] as $module) { 
    $moduleData[] = json_decode(file_get_contents("json/_$module.json"), true); 
} 

// add module data to the main array 
$decodedData['modules'] = $moduleData; 

// encode back into JSON 
$json = json_encode($decodedData);