您好我有一个嵌套的json对象。
我想重命名所有total_exec_qty_buy
& total_exec_qty_sell
至total_exec_qty
; total_num_ords_buy
& total_num_ords_sell
至total_num_ords
我是按照以下方式进行的:
newArray = JSON.stringify(newArray).split('"total_exec_qty_buy":').join('"total_exec_qty":');
当我只做一个陈述(一个以上)时,输出就好了。 但是当我这样做时:
newArray = JSON.stringify(newArray).split('"total_exec_qty_buy":').join('"total_exec_qty":');
newArray = JSON.stringify(newArray).split('"total_exec_qty_sell":').join('"total_exec_qty":');
newArray = JSON.stringify(newArray).split('"total_num_ords_buy":').join('"total_num_ords":');
newArray = JSON.stringify(newArray).split('"total_num_ords_sell":').join('"total_num_ords":');
然后我得到了这个输出:
"\"\\\"[{\\\\\\\"total_wt_arr_slp_buy\\\\\\\":\\\\\\\"-1.9322\\\\\\\",\\\\\\\"total_exec_qty\\\\\\\":\\\\\\\"49654\\\\\\\",\\\\\\\"total_wt_buy\\\\\\\":\\\\\\\"0.31\\\\\\\",\\\\\\\"total_wt_arr_last_slp_buy\\\\\\\":\\\\\\\"-0.1924\\\\\\\",\\\\\\\"total_wt_ivwap_slp_buy\\\\\\\":\\\\\\\"-0.1103\\\\\\\",\\\\\\\"total_exec_val_buy\\\\\\\":\\\\\\\"3224372.00\\\\\\\",\\\\\\\"total_ord_qty_buy\\\\\\\":\\\\\\\"61688\\\\\\\",\\\\\\\"total_num_ords_buy\\\\\\\":\\\\\\\"859\\\\\\\"},{\\\\\\\"total_wt_arr_last_slp_sell\\\\\\\":\\\\\\\"-1.2509\\\\\\\",\\\\\\\"total_ord_qty_sell\\\\\\\":\\\\\\\"139654\\\\\\\",\\\\\\\"total_exec_qty_sell\\\\\\\":\\\\\\\"111012\\\\\\\",\\\\\\\"total_wt_ivwap_slp_sell\\\\\\\":\\\\\\\"-0.1833\\\\\\\",\\\\\\\"total_wt_sell\\\\\\\":\\\\\\\"0.69\\\\\\\",\\\\\\\"total_exec_val_sell\\\\\\\":\\\\\\\"7129344.00\\\\\\\",\\\\\\\"total_num_ords_sell\\\\\\\":\\\\\\\"1099\\\\\\\",\\\\\\\"total_wt_arr_slp_sell\\\\\\\":\\\\\\\"-2.4978\\\\\\\"},{\\\\\\\"total_wt_arr_last_slp\\\\\\\":\\\\\\\"-0.9213\\\\\\\",\\\\\\\"total_exec_qty\\\\\\\":\\\\\\\"160666\\\\\\\",\\\\\\\"total_wt_ivwap_slp\\\\\\\":\\\\\\\"-0.1606\\\\\\\",\\\\\\\"total_wt_arr_slp\\\\\\\":\\\\\\\"-2.3216\\\\\\\",\\\\\\\"total_ord_qty\\\\\\\":\\\\\\\"201342\\\\\\\",\\\\\\\"total_num_ords\\\\\\\":\\\\\\\"1958\\\\\\\",\\\\\\\"total_notional\\\\\\\":\\\\\\\"10353698.63\\\\\\\"}]\\\"\""
为什么会这样?
答案 0 :(得分:0)
这种情况正在发生,因为您一直在呼叫JSON.stringify()
。
对json对象进行一次字符串化,然后使用str.replace()代替:
var jsonStr = JSON.stringify(jsonObj);
jsonStr = jsonStr.replace("total_exec_qty_buy", "total_exec_qty");
jsonStr = jsonStr.replace("total_exec_qty_sell", "total_exec_qty");
jsonStr = jsonStr.replace("total_num_ords_buy", "total_num_ords");
jsonStr = jsonStr.replace("total_num_ords_sell", "total_num_ords");
答案 1 :(得分:0)
您链接不正确。你是第二次将字符串字符串化。
试试这个
var stringifiedArr = JSON.stringify(newArray);
stringifiedArr = stringifiedArr.split('"total_exec_qty_buy":').join('"total_exec_qty":').split('"total_exec_qty_sell":').join('"total_exec_qty":').split('"total_num_ords_buy":').join('"total_num_ords":').split('"total_num_ords_sell":').join('"total_num_ords":');
newArray = JSON.parse( stringifiedArr );
您现在可以通过进行一些重构来优化它
function splitAndJoin( str, splitter, joiner )
{
return str.split( splitter ).join( joiner );
}
var stringifiedArr = JSON.stringify(newArray);
stringifiedArr = splitAndJoin( stringifiedArr , "total_exec_qty_buy", "total_exec_qty" );
现在看起来很可读。