正则表达式从响应中获取json数据

时间:2019-05-28 11:15:17

标签: java regex

我有这样的json响应

2019 May 28 10:03:56.586520 pacexg1v1 rdkbrowser2[4786]:  190528-10:03:56.586491 [mod=RDKBROWSER2, lvl=INFO] [tid=4786] onConsoleLog:rdkbrowser.cpp:926 [ConsoleAPI:144]: {"objectName":"com.comcast.BridgeObject_1","methodName":"JSMessageChanged","argv":["{\"action\":\"entitlementsAccountLink\",\"args\":{\"action\":\"appLaunch\",\"subscriptionEntitlements\":[{\"id\":\"Prime\",\"endDate\":1561629841000}]},\"pid\":7}"]}

从此使用正则表达式如何单独获取json

{"objectName":"com.comcast.BridgeObject_1","methodName":"JSMessageChanged","argv":["{\"action\":\"entitlementsAccountLink\",\"args\":{\"action\":\"appLaunch\",\"subscriptionEntitlements\":[{\"id\":\"Prime\",\"endDate\":1561629841000}]},\"pid\":7}"]}

1 个答案:

答案 0 :(得分:0)

当响应中只有一个JSON数据且响应中的JSON数据中不能包含({[\s\S]*}){个字符时,以下正则表达式将起作用}。 / p>

否则,您将无法使用正则表达式进行解析,因为JSON数据主要包含递归,例如。 {"obj1": {"obj1_1": "val1_1"}}

如果响应中有两个JSON数据,则无法确定第一个结束于何处,第二个何处以正则表达式开始。