正则表达式匹配json字符串中多个{}中符合条件的{}

本人现在的需求是要使用正则表达式匹配json字符串中符合条件的一对{},{}内的name属性为_id如下图

img

样例:
{"fields":[{"metadata":{},"name":"id","nullable":true,"type":"integer"},{"metadata":{},"name":"_id","nullable":true,"type":"string"},{"metadata":{},"name":"test","nullable":true,"type":"string"},{"metadata":{},"name":"age","nullable":true,"type":"integer"},{"metadata":{},"name":"name","nullable":true,"type":"string"},{"metadata":{},"name":"testnum","nullable":true,"type":"decimal(19,0)"}],"type":"struct"}

请教下大家,感谢

直接对象便利岂不是更方便?更准确?为什么必须要用正则表达式呢?


let data={"fields":[{"metadata":{},"name":"id","nullable":true,"type":"integer"},{"metadata":{},"name":"_id","nullable":true,"type":"string"},{"metadata":{},"name":"test","nullable":true,"type":"string"},{"metadata":{},"name":"age","nullable":true,"type":"integer"},{"metadata":{},"name":"name","nullable":true,"type":"string"},{"metadata":{},"name":"testnum","nullable":true,"type":"decimal(19,0)"}],"type":"struct"};

let result = null;
data.fields.forEach(v=>{ 
    if(v.name==="_id"){
      result = v;
    }
});
//此时result 为 {"metadata": {},"name": "_id","nullable": true,"type": "string"},成功拿到了想要的数据
//如果想要将其转换成字符串,用下面的办法

let result_str = JSON.stringify(result);