我想知道如何識別包含JSON的字符串。我正在編寫一些監視功能,如果字符串包含JSON,我希望能夠做些什麼。如何最好地識別包含JSON的字符串?
這是事情,我解析的字符串不會是100%的JSON,它會有JSON內容。這裏有一個例子:
"bla bla bla {"key": "value"} bla bla bla"
有了這個,我不能做傳統的技術,如嘗試,它解析爲JSON,看看它是否工作
我用正則表達式擺弄,但我似乎無法到找到一個好的解決方案,看起來好像不是凌亂。
我確定了一個合理的誤差範圍,但有沒有什麼好的方法來做到這一點?
僅供參考:我在一個Java環境
EDIT1
好了,給你們更多的上下文是什麼我想做的事情。基本上我需要監視我們正在打印的日誌語句。根據之前的事件,我們在記錄不應記錄的JSON有效負載(特別是在調試級別以上)時遇到了一些問題。
我有其他的監控規則,但這是我想補充的。所以它不需要100%失效保護。
我刪除了逃脫的引號,他們確實沒有任何意義。
這聽起來像是一個根本不好的主意。並非所有可以解析爲JSON的東西都是JSON。例如,「每個引用類型的默認值爲null,並且布爾類型的默認值爲false」包含兩個有效的JSON文檔。你確定你想要包含該JSON嗎?爲什麼你的例子已經逃脫了價值?如果你可以給我們更多的上下文,我們可能會提出更好的方法。 –
從技術上講,只有對象和數組應該被支持爲頂級JSON,所以我想他可以找到{和[並得到字符串,直到匹配結束{或](照顧嵌套)... –
我同意@JonSkeet,聽起來像一個壞主意。也許如果你只想做一個基本的檢查,它會足夠好嗎?像'\ {。*?\}'這樣的東西? – neuhaus