2014-12-04 63 views
1

我想從字符串更改json數組值到PHP腳本中的浮點值。這是所有字符串類型。我希望它是一個浮動類型。json數據值類型

[{"year":"2008","value":"4169.20"}, 
{"year":"2009","value":"4067.50"}, 
{"year":"2010","value":"4848.40"}, 
{"year":"2011","value":"5654.80"}, 
{"year":"2012","value":"6071.50"}] 

但我希望它看起來像。可能嗎?

[{"year":"2008","value":4169.20}, 
{"year":"2009","value":4067.50}, 
{"year":"2010","value":4848.40}, 
{"year":"2011","value":5654.80}, 
{"year":"2012","value":6071.50}] 
+0

當您生成JSON數據時,將'value'設置爲'float'類型。 – Joy 2014-12-04 11:58:31

+0

循環訪問數組並在'value'屬性上調用'parseFloat()'。 – Barmar 2014-12-04 11:58:39

回答

1

最簡單的方法是投value數據到JSON編碼之前浮動。

但是如果你想只在JS的工作:

var data = [ /* your data */ ]; 

data.forEach(function(item){ 
    item.value = +item.value; 
}); 

輸出:

[ 
    {"year":"2008","value":4169.2}, 
    {"year":"2009","value":4067.5}, 
    {"year":"2010","value":4848.4}, 
    {"year":"2011","value":5654.8}, 
    {"year":"2012","value":6071.5} 
] 
+0

我得到了結果..謝謝! – 2014-12-04 12:37:13

0

採用javascript parseFloat()函數:

例如

var b = parseFloat("10.00") 
1
<?php 
$data = '[{"year":"2008","value":"4169.20"}, 
{"year":"2009","value":"4067.50"}, 
{"year":"2010","value":"4848.40"}, 
{"year":"2011","value":"5654.80"}, 
{"year":"2012","value":"6071.50"}]'; 

$a = json_decode($data); 
$b = array(); 
foreach ($a as $key => $v) { 
$c['year'] = $v->year; 
$c['value'] = (float) $v->value; 
$b[] = $c; 
} 
echo '<pre>'; 
print_r(json_encode($b)); 
echo '</pre>'; 
?> 

Demo

0

我只看到JS的答案。我不知道什麼是你的意圖,但如果你有jsong字符串在PHP中,你可以使用這樣的事情:

$json = ' [ 
    {"year":"2008","value":"4169.20"}, 
    {"year":"2009","value":"4067.50"}, 
    {"year":"2010","value":"4848.40"}, 
    {"year":"2011","value":"5654.80"}, 
    {"year":"2012","value":"6071.50"} 
]'; 

$jsonArray = json_decode($json); 

foreach($jsonArray as $key => &$subArray) 
{ 
    $subArray->value = (float) $subArray->value; 
} 

echo json_encode($jsonArray); 
0

preg_replace

$json = preg_replace('/"value":"(\d+\.\d+)"/', '"value":$1',$json); 
0

您有2個選項。

選項1.

在您的應用程序(PHP代碼)的後端,你可以施放「價值」是浮動。例如: -

$floatValue = (float) $strValue; 

選項2

如果您不能編輯在每一個「值」後端使用parseFloat。它會在你的迴應中產生字符串中的花車。