2017-02-15 21 views
-1

我一直在尋找很多論壇和問題,但無法找到任何找到這個任何回答。生成一個含有JSON浮點數以下0

簡單的話是有可能創造在PHP這樣的JSON響應:

{ 
    "Balance": 1.200 
} 

1.2000不是一個字符串。

+1

爲什麼需要0的? –

+0

我正在整合一個API,他們希望我們的迴應是這樣的。 – Kanav

+0

你可以但最後00會丟失,意味着你會得到「平衡​​」:1.2 –

回答

2

如果the result they want不是一千零二一百個as suggested通過bub,那麼你就不會abble給他們不必要的尾隨零的整數,它沒有任何意義了整數有他們。

如果有可能,你會如何存儲零的整數中的數字? AFAIK這是不可能的。

0

恐怕你將需要調整你自己的JSON字符串。例如爲:

  1. 從數1.2生成JSON字符串之前轉換餘額的值串"@@[email protected]@"
  2. 生成JSON字符串
  3. 使用PHP的字符串與[whatever_number_with_trailing_zeroes]
0

當然可以更換的"@@[whatever_number]@@"所有出現,一切是可能的,但你的JSON不會是有效的(雖然大部分JSON解析器不會抱怨) - 只儲存你的「填充」平衡的字符串,然後後處理以去除其報價:

// Make sure your data contains Balance in the format you need, as string 
$your_data = array('Balance' => '1.200', 'foo' => 'bar'); 

// Encode your data the regular way 
$json = json_encode($your_data); 

echo "Before: $json"; // Before: {"Balance":"1.200","foo":"bar"} 

// remove quotes around balance instances in your JSON 
$fixed_json = preg_replace('/Balance":(\s*)"(.*?)"/', 'Balance":$2$1', $json); 

echo "After: $fixed_json"; // After: {"Balance":1.200,"foo":"bar"} 

當然,請記住,這將刪除報價FR om無論您的JSON水平如何,所有Balance值。

更大的問題是誰,心裏明白過來,將要求您無效JSON發給他們的API?

+1

哈哈。我愛你的最後一行。但是,有些公司並不知道這一點。 – Kanav

+1

有人會認爲,如果他們有足夠能勝任API的人員,這些人應該知道什麼是有效的JSON,哪些不是,特別是因爲他們首先選擇了格式。 噢,上面的代碼應該可以解決你的問題,但隨時可以用自己的API來搗亂自己的鼻子;) – zwer