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

1 投票
3 回答
1486 浏览
提问于 2025-04-16 06:57

我有一段JSON字符串,它是日志的一部分。

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

我想把它过滤成这样的格式:{"Lac":"7824","Cid":"11983"}

我该如何使用正则表达式来实现这个目标呢?可以用JavaScript或者Python吗?这些键是固定的字符串(比如Lac、CntryISO等),但是它们的值是会变化的。

3 个回答

0

你为什么要用正则表达式来处理这个呢?其实你可以直接用JSON解析器或者序列化工具。要是你担心速度的话,可以试试Python里的cjson,它比Python标准库里的'json'模块要快。

5

你为什么不直接在JavaScript中用delete来删除它们呢?

var myJson = {"Lac":"7824","CntryISO":"us","NetTyp":"GSM","NetOp":"310260","Cid":"11983"};

delete myJson.Lac;
delete myJson.cId;
1

为了更详细地解释一下@alex的回答:

JSON是一种多层次的结构,像一个嵌套的盒子。简单地过滤“把JavaScript对象变成字符串的形式”(也就是JSON)在一些简单的情况下是可以的,但当结构变得复杂,或者有一些特殊字符时,这种方法就会很快失效。

到那时候,你就需要用更合适的解析逻辑来处理了。JavaScript本身就提供了这样的功能,引用一下@alex的代码:

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

祝你好运! :)

撰写回答