0
我有以下控制器/動作:將數據序列化/規範化爲JSON:如何以編程方式更改輸出映射?
public function messagesAction()
{
$encoders = array(new JsonEncoder());
$normalizers = array(new GetSetMethodNormalizer());
$serializer = new Serializer($normalizers, $encoders);
$message = $this->getDoctrine()
->getRepository('AcmeStoreBundle:Message')
->findAll();
$response = new Response($serializer->serialize($message, 'json'));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}
其發送以下JSON:
[
{
"id": 1,
"iam": 1,
"youare": 2,
"lat": 50.8275853,
"lng": 4.3809764,
"msgbody": "Lorem ipsum lorem ipsum lorem ipsum"
},
{
"id": 2,
"iam": 1,
"youare": 2,
"lat": 50.8307348,
"lng": 4.3734823,
"msgbody": "What up?"
}
]
我沒有做一個名爲關鍵,它爲我的javascript FW(恩伯),以使硬得到一些物體。
我想的JSON輸出更改爲:
[
{
"message": {
"id": "1",
"iam": "male",
"youare": "female",
"lat": "50.8307348"
}
}
]
我知道有正則表達式我可以玩,但我真的不知道在哪裏。正如你所看到的,我使用標準的開箱序列化程序(這是我可以返回有效的Json的唯一方法)。它是否帶有我想要的選項? (獎金:我還想在發送數據之前操縱數據..)
你能提供一些關於如何解決特定問題的更多信息嗎? (正如我看到的捆綁就像一個完整的串行器捆綁替代品..) – 2013-02-16 17:22:20