У меня есть ответ 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}"]}




Следующее регулярное выражение выполнит работу ({[\s\S]*}), когда в ответе есть только одни данные JSON, и ваш ответ не может содержать символы { и } за пределами данных JSON.
В противном случае вы не сможете разрешить его с помощью регулярных выражений, потому что данные JSON в основном содержат рекурсию, например. {"obj1": {"obj1_1": "val1_1"}}.
Если у вас есть два данных JSON в ответе, вы не можете сказать, где заканчивается первый и где начинается второй с регулярным выражением.
что-то вроде это