用正则解析json 正则表达式解析json:代码示例

qianduancss

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

使用正则表达式解析JSON可以通过匹配JSON的语法规则来提取出其中的数据。JSON的语法规则包括对象(以{}表示)、数组(以[]表示)、键值对(以key:value表示)等。

我们可以使用正则表达式来匹配JSON对象。JSON对象以{}包围,其中可以包含多个键值对。我们可以使用正则表达式`/{([^{}]+)}/g`来匹配JSON对象。其中,`{}`表示匹配{},`[^{}]+`表示匹配{}之间的内容,`()`表示将匹配的内容作为一个分组。通过使用`g`标志,可以匹配到所有的JSON对象。

示例代码如下:

const json = '{"name": "John", "age": 30, "city": "New York"}';

const regex = /{([^{}]+)}/g;

const matches = json.match(regex);

console.log(matches);

上述代码中,我们定义了一个JSON字符串`json`,使用正则表达式`regex`进行匹配,并使用`match`方法找到所有匹配的结果。通过`console.log`打印出匹配的结果。

接下来,我们可以使用正则表达式来匹配JSON数组。JSON数组以[]包围,其中可以包含多个值。我们可以使用正则表达式`/\[([^[\]]+)\]/g`来匹配JSON数组。其中,`[]`表示匹配[],`[^[\]]+`表示匹配[]之间的内容。

示例代码如下:

const json = '[1, 2, 3, 4, 5]';

const regex = /\[([^[\]]+)\]/g;

const matches = json.match(regex);

console.log(matches);

上述代码中,我们定义了一个JSON字符串`json`,使用正则表达式`regex`进行匹配,并使用`match`方法找到所有匹配的结果。通过`console.log`打印出匹配的结果。

我们可以使用正则表达式来匹配JSON键值对。JSON键值对以key:value的形式表示,其中key和value可以是字符串、数字、布尔值、对象或数组。我们可以使用正则表达式`/\"(\w+)\":\s?(\d+|\"[^\"]*\"|\{[^{}]*\}|\[[^\[\]]*\]|true|false)/g`来匹配JSON键值对。其中,`\"(\w+)\":`表示匹配一个以双引号包围的键,`\s?`表示匹配一个可选的空格,`(\d+|\"[^\"]*\"|\{[^{}]*\}|\[[^\[\]]*\]|true|false)`表示匹配一个数字、字符串、对象、数组、布尔值。

示例代码如下:

const json = '{"name": "John", "age": 30, "isStudent": true}';

const regex = /\"(\w+)\":\s?(\d+|\"[^\"]*\"|\{[^{}]*\}|\[[^\[\]]*\]|true|false)/g;

let matches;

while ((matches = regex.exec(json)) !== null) {

const key = matches[1];

const value = matches[2];

console.log(`${key}: ${value}`);

}

上述代码中,我们定义了一个JSON字符串`json`,使用正则表达式`regex`进行匹配,并使用`exec`方法逐个匹配键值对。在循环中,我们使用`matches[1]`获取键,使用`matches[2]`获取值,并通过`console.log`打印出键值对。

通过以上的示例代码,我们可以看到如何使用正则表达式解析JSON。使用正则表达式可以灵活地匹配JSON的各种语法规则,并提取出所需的数据。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码