簡體   English   中英

從json字符串中的json提取值

[英]Extract a value from json inside json string

var a = '{"test_cmd": "pybot  -args : {\"custom-suite-name\" : \"my-1556\"}}'
b = a.match("\"custom-suite-name\" : \"([a-zA-Z0-9_\"]+)\"")
console.log(b)

我在json字符串中有一個json字符串。

我喜歡使用正則表達式提取屬性custom-suite-name的值。

輸出必須是

my-1556

但是返回值b沒有匹配項/空值。

不要使用正則表達式來解析JSON,請使用JSON.parse

var obj = JSON.parse(a);
var test_cmd = obj.test_cmd;
var args_json = test_cmd.replace('pybot  -args : ', '');
var args = JSON.parse(args_json);
var custom_suite = args.custom_suite_name;

最好將正則表達式放在/斜杠內。 注意,

  • 冒號之前有一個空格。
  • 無需轉義雙引號。
  • 包含-在字符類中,因為您的值部分也包含連字符。

碼:

> a.match(/"custom-suite-name" : "([a-zA-Z0-9_-]+)"/)[1]
'my-1556'
> a.match(/"custom-suite-name"\s*:\s*"([a-zA-Z0-9_-]+)"/)[1]
'my-1556'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM