2015-06-22 38 views
-1

我有一個目錄,定期更新一些json文件。我想要做的就是在我的Symfony2應用程序中將它們反序列化以獲得他們多汁的數據。如何在Symfony2中反序列化真實世界的JSON

symfony網站上的示例包含非常簡單的扁平JSON示例,它們不反映嵌套的現實世界嵌套JSON數據的實際情況。例如,以下是我想要反序列化的文件的簡化版本。

{ 
    "uid" : "some unique identifier" 
    "title" : "this is a tile", 
    "description" : "some description", 
    "paragraphs" : [ 
     { 
      "position" : "left", 
      "body" : "a lot of text here", 
      "video":{ 
       "ogg" : "path1", 
       "webm" : "path2", 
       "mp4" : "path3" 
      } 
     }, 
     { 
      "position" : "right", 
      "body" : "a lot of text here", 
      "video":{ 
       "ogg" : "path1", 
       "webm" : "path2", 
       "mp4" : "path3" 
      } 
     } 
    ] 
} 

當然,我想這個嵌套的JSON反序列化到一個簡單的,易於訪問的模式。

我想知道的是如何爲上述JSON編寫Content類,以便當我調用$filecontent = $serializer->deserialize($data, 'Acme\Content', 'json');時,它可以成功反序列化。

+1

在PHP中,你可以用一個函數來完成它:http://php.net/manual/en/function.json- decode.php。你試過這個嗎?如果是這樣,爲什麼它不可行?讓我們知道你想要的輸出。 – light

回答

2

這應該很容易反序列化JSON的:

$fileContent = json_decode($jsonData); 

Documentation for json_decode can be found here

+0

最簡單的方法,所以我用它。 希望有一種方法可以在框架中完成,而無需編寫大量的腳手架,但並非如此。 – graney

+0

好吧,你可以編寫一個單獨的類來完成所有的骯髒工作,並將它定義爲symfony中的一個服務,然後它將在代碼中可重複使用,非常簡單和乾淨。你甚至可以在某個地方找到這樣的類,並通過作曲者來安裝它,但是我不確定是否有一個能夠完全滿足你需要的庫,但是值得嘗試去谷歌它。無論如何,寫你自己不應該很難:) –