Regex для получения данных JSON из ответа - PullRequest
0 голосов
/ 28 мая 2019

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

1 голос
/ 28 мая 2019

Следующее регулярное выражение выполнит работу ({[\s\S]*}), если в ответе есть только один JSON-данные, и ваш ответ не может содержать { и } символов вне данных JSON.

В противном случаевы не можете разрешить это с помощью регулярных выражений, потому что данные JSON в основном содержат рекурсию, напр.{"obj1": {"obj1_1": "val1_1"}}.

Если в ответе есть два JSON-данных, вы не можете сказать, где заканчивается первый и где начинается второй, с помощью регулярного выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...