本人现在的需求是要使用正则表达式匹配json字符串中符合条件的一对{},{}内的name属性为_id如下图
样例:
{"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);