我有这个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); } }
levi.. 7
由于JSON实际上是一个字符串,为什么不将整个字符串放在全局字符串中string.replace
:
jsonStr = JSON.stringify(jsonStr); jsonStr = jsonStr.replace(/"v":"(\d+)"/g, '"v":$1');
Jsfiddle演示
由于JSON实际上是一个字符串,为什么不将整个字符串放在全局字符串中string.replace
:
jsonStr = JSON.stringify(jsonStr); jsonStr = jsonStr.replace(/"v":"(\d+)"/g, '"v":$1');
Jsfiddle演示