我有一个用于google图表可视化的Json字符串,它需要以这种精确的格式显示,我需要替换"v“的每个值,即它的数值(没有”“的值)。我应该做一些javascript替换函数,但是我找不到在json对象周围移动的方法。下面是我应该修改的json字符串和示例:
{"cols":[
{"id":"r","label":"Reason","type":"string"},
{"id":"m","label":"Minutes","type":"number"}
],
"rows":[
{"c":[
{"v":"Flour - Blower","f":"Flour - Blower"},
{"v":"7","f":"7"}]},
{"c":[
{"v":"Whole Line - d","f":"Whole Line - d"},
{"v":"4","f":"4"}]},
{"c":[
{"v":"Flour - Pipework","f":"Flour - Pipework"},
{"v":"3","f":"3"}]},
{"c":[
{"v":"Horseshoe - Belt","f":"Horseshoe - Belt"},
{"v":"1","f":"1"}]}
],
"p":null
}也许我应该做些如下的事情:
var jsonStr = ...;
for (i in jsonStr.rows) {
for(j in jsonStr[i].c)
{
if (parseInt(jsonStr[i].c[j].v) != 'NaN') {
jsonStr.rows[i].c[j].v = parseInt(jsonStr.rows[i].c[j].v);
}
}发布于 2013-12-04 18:25:06
我觉得解析没问题。它可能不起作用,因为您无法通过与NaN进行比较来真正检查字符串是否包含数字
这是因为即使是著名的NaN === NaN也会返回false。
我建议您使用isNaN方法(它确实在内部使用parseInt )。所以,像这样的事情应该能起作用
for (i in jsonStr.rows) {
for(j in jsonStr[i].c)
{
if (!isNaN(jsonStr[i].c[j].v)) {
jsonStr.rows[i].c[j].v = parseInt(jsonStr.rows[i].c[j].v);
}
}https://stackoverflow.com/questions/20382591
复制相似问题