正则表达式,用于过滤掉json字符串中的部分键值

时间:2010-11-12 01:58:08

标签: javascript python regex

我将以下JSON字符串作为日志行的一部分。

cells : {"Lac":"7824","CntryISO":"us","NetTyp":"GSM","NetOp":"310260","Cid":"11983"}

我想过滤掉以下格式:{"Lac":"7824","Cid":"11983"}

如何使用正则表达式执行此操作?在Javascript或Python? 键是常量字符串(Lac,CntryISO,...),但值字符串是变化的。

3 个答案:

答案 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'模块更快。