如何使用JS regex在其键之后捕获特定的JSON值?

时间:2017-07-20 05:57:22

标签: javascript json regex

我有以下格式的JSON数据:

{"User":"aa2","Owner":"aa2_role","Status":"locked","Port":"5432","Description":"Transferred from CFS01 on Jun29","Project":"aa2","Server":"localhost"}

我可以指望名为" Project" 始终保持不变。

我需要的是提取"项目" ,在这种情况下" aa2" 在JavaScript中使用正则表达式。

我一直在尝试/ ^(" Project":)$ / g的不同变体,但它不起作用。

我最后一次尝试/ [^" Project":$] / g但是它给了我JSON对象中的所有内容但" Project":

有谁知道如何捕获特定Project键的值?

编辑:为了澄清,我同意使用解析机制。我的问题是我正在调试/使用以前的代码库,它使用一个单独的函数将解析后的JSON作为字符串传递给函数,现在我需要从字符串中提取所需的数据。在花了这么多时间试图解决问题之后,我即将废弃该功能以便使用Parse ...这就是为什么我试图使用正则表达式但我认为的越多关于它,我越是意识到它只是糟糕的代码......但是,现在我只是好奇。

2 个答案:

答案 0 :(得分:2)

无需使用正则表达式从对象字符串中提取值。只需使用JSON.parse()即可。这会将字符串转换为Object。解析后,您可以使用密钥来访问该值。

var obj = JSON.parse('{"User":"aa2","Owner":"aa2_role","Status":"locked","Port":"5432","Description":"Transferred from CFS01 on Jun29","Project":"aa2","Server":"localhost"}');

console.log(obj.Project);

答案 1 :(得分:1)

解析JSON然后获取值。 工作示例:https://jsfiddle.net/vineeshmp/2c8z7r6u/

var json =' {"User":"aa2","Owner":"aa2_role","Status":"locked","Port":"5432","Description":"Transferred from CFS01 on Jun29","Project":"aa2","Server":"localhost"}';    
json = JSON.parse(json);
alert(json.Project);