我有以下格式的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 ...这就是为什么我试图使用正则表达式但我认为的越多关于它,我越是意识到它只是糟糕的代码......但是,现在我只是好奇。
答案 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);