如何使用google visualization api柱形图中使用的json对象内的数字替换字符串值

dlg*_*ght 4 javascript jquery json google-visualization str-replace

我有这个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
}
Run Code Online (Sandbox Code Playgroud)

可能我应该这样做:

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);
   }
 }
Run Code Online (Sandbox Code Playgroud)

lev*_*evi 7

由于JSON实际上是一个字符串,为什么不将整个字符串放在全局字符串中string.replace:

jsonStr = JSON.stringify(jsonStr);
jsonStr = jsonStr.replace(/"v":"(\d+)"/g, '"v":$1');
Run Code Online (Sandbox Code Playgroud)

Jsfiddle演示

  • @QambarRaza如果需要,可以做`jsonStr.replace(/"(v | f)":"(\ d +)"/ g,'"$ 1":$ 2');` (3认同)