我有一些文本格式如下:
var string = 'some random text fjijd {"Type":"NewTunnel","Payload":{"ReqId":"e425ebb50d220816","Url":"asaa","Protocol":"http","Error":""}} some other text bla bla'
我想知道如何提取可以使用正则表达式解析的 json 字符串化对象。
更新
我正在使用 spawn
和以这种方式格式化的纯文本格式的 stdout
数据(即应用程序日志 -log=stdout
)从 node.js 应用程序运行子进程。不要问我如何以及为什么,抱歉!
var cproc = require("child_process");
proc = cproc.spawn("./ngrok", ['-log=stdout', '8080']);
proc.stdout.on("data", function(res) {
console.log("Data received: " + res);
});
收到的数据是纯文本,如下所示:
[08/10/14 01:49:37] [DEBG] [ctl:604a481c] Read message {"Type":"ReqProxy","Payload":{}}
它还包括调试信息!
最佳答案
最后更新:另一个解决方案
/((?:{).*(?:}))/g
<小时/>
初步答案:
这又怎样呢。我相信您只需要该字符串中的 JSON 部分。如果您不期望嵌套对象,则可以将模式更改为 /({.*?})/g
var s = 'some random text fjijd {"Type":"NewTunnel","Payload":{"ReqId":"e425ebb50d220816","Url":"asaa","Protocol":"http","Error":""}} some other text bla bla';
var m = s.match(/({.*})/g); // or /({+.*}+)/g or /(({+).*(}+))/g
console.log(m[0]);
输出:
{"Type":"NewTunnel","Payload":{"ReqId":"e425ebb50d220816","Url":"asaa","Protocol":"http","Error":""}}
关于javascript - 正则表达式在测试中获取一些 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25224223/