如何解析嵌入Javascript常量或變量的JSON字符串?Python:解析帶有嵌入式Javascript常量/變量的JSON字符串
例如,如何解析一個像這樣的JSON字符串?
{
"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{
"value": "New",
"onclick": Handlers.NEW
},
{
"value": "Open",
"onclick": Handlers.OPEN
},
{
"value": "Custom",
"onclick": "function(){doSomething(Handlers.OPEN);}"
}
]
}
}
}
所有的驗證器當然都認爲JSON是無效的,但當在定義相應Javascript對象的上下文中進行評估時,它是完全有效的。
首先想到的是在將字符串提供給JSON解析器之前對其進行預處理,但這很棘手,因爲現有字符串內可能會出現相同的字符串(如示例JSON中所示),並且這將需要一些正則表達式來擺弄,以便可靠地檢測是否例如Handlers.NEW
用作未修飾的值,或在現有的字符串值中。
有沒有一種乾淨的方式來處理這個用例,而不必手動正則表達式替換?
事實上,它是不是有效的JSON(儘管這是一個有效的JavaScript對象)。您可能需要爲此編寫自己的解析器。 – L3viathan