Javascript json数据值类型

Javascript json数据值类型,javascript,php,json,Javascript,Php,Json,我想将json数组值从字符串更改为浮点值,这是从php脚本得到的。都是字符串类型。我想要一个浮动类型的 [{"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

我想将json数组值从字符串更改为浮点值,这是从php脚本得到的。都是字符串类型。我想要一个浮动类型的

[{"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}]

最简单的方法是在将数据编码到JSON之前将
value
强制转换为float

但如果您只想在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}
]
使用javascript parseFloat()函数:

e、 g



我只看到JS的答案。我不知道您的意图是什么,但如果您有PHP中的jsong字符串,您可以使用如下内容:

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

preg\u替换

$floatValue = (float) $strValue;
你有两个选择

选项1。

在应用程序的后端(php代码),可以将“value”转换为float。例如:

选项2。


如果无法编辑每个“值”的后端使用。它将根据响应中的字符串生成浮点。

生成JSON数据时,将
作为类型
浮点
。在数组上循环,并在
属性上调用
parseFloat()
$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);
$json = preg_replace('/"value":"(\d+\.\d+)"/', '"value":$1',$json);
$floatValue = (float) $strValue;