我将以下JSON字符串作为日志行的一部分。
cells : {"Lac":"7824","CntryISO":"us","NetTyp":"GSM","NetOp":"310260","Cid":"11983"}
我想过滤掉以下格式:{"Lac":"7824","Cid":"11983"}
。
如何使用正则表达式执行此操作?在Javascript或Python? 键是常量字符串(Lac,CntryISO,...),但值字符串是变化的。
答案 0 :(得分:5)
为什么不在JavaScript中delete
使用它们?
var myJson = {"Lac":"7824","CntryISO":"us","NetTyp":"GSM","NetOp":"310260","Cid":"11983"};
delete myJson.Lac;
delete myJson.cId;
答案 1 :(得分:1)
扩展并解释@alex答案:
JSON是嵌套的多维结构。简单地过滤“Javascript对象的字符串形式”(又名JSON)将在非常简单的情况下工作,但是当结构不再平坦或者开始变得复杂的转义字段等时会很快失败。
此时您需要正确的解析逻辑。这很好地由Javascript本身提供,引用@alexes代码:
var myJson = {"Lac":"7824","CntryISO":"us","NetTyp":"GSM","NetOp":"310260","Cid":"11983"};
delete myJson.Lac;
delete myJson.cId;
或者,如果你想使用python,json
模块将正常工作:
http://docs.python.org/library/json.html
答案 2 :(得分:0)
当您只使用JSON解析器/序列化程序时,为什么要使用正则表达式?如果您关心速度,请尝试使用Python中的cjson,它比Python标准库中的'json'模块更快。