所以我們在我們的Symfony2項目中使用JMSSerializerBundle
爲我們的客戶生成一些JSON。它序列化我們的Doctrine2實體並且像魅力一樣工作,只有一個例外。所有雙/十進制值都是生成的JSON中的字符串,這使客戶端感到困惑。JMSSerializerBundle在JSON中返回雙精度字符串
我們的序列化實體看起來像這樣,我只在這裏粘貼了相關屬性/ getters。
class Offer
{
[...]
/**
* @var double $latitude
*
* @ORM\Column(name="latitude", type="decimal", precision=10, scale=7)
* @Groups("offerlist")
*/
private $latitude;
/**
* @var double $longitude
*
* @ORM\Column(name="longitude", type="decimal", precision=10, scale=7)
* @Groups("offerlist")
*/
private $longitude;
[...]
/**
* Get latitude
*
* @return double
*/
public function getLatitude()
{
return $this->latitude;
}
/**
* Get longitude
*
* @return double
*/
public function getLongitude()
{
return $this->longitude;
}
[...]
}
緯度/經度值在JSON像這樣顯示:
{
"latitude" : "5.3452",
"longitude" : "54.2312"
}
如何擺脫引號的,所以它在JSON一些,而不是一個字符串?這應該很容易,但我找不到docs或網上關於此問題的任何內容。希望有人能幫我一把!
也許你能幫助我在一個類似的問題;) 我已經設定的類型(「雙」)annoataion,但我不能找到一個解決方案讓序列化程序向這些值添加尾隨零。 我想註釋的字段返回100.00而不是100,但找不到一個合適的地方 – weyandch
100 === 100.00如果它是一個數字,像這些東西不支持,除非你將序列化值爲一個字符串。我真的無法想象需要發送零點的情況。如果它的意義重大,你可以用一個單獨的值發送它。我認爲許多數據庫和編程語言也會忽略.00,所以即使你將它串行化,它在反序列化中可能會丟失。 –