我正在使用ColdFusion處理來自cfc的Ajax數據並返回序列化的數據。控制檯以這種格式顯示數據。使用JavaScript解析串行化數據
query('id':[1],'title':['value'],'descr':['value2'])
我該如何解析?
我正在使用ColdFusion處理來自cfc的Ajax數據並返回序列化的數據。控制檯以這種格式顯示數據。使用JavaScript解析串行化數據
query('id':[1],'title':['value'],'descr':['value2'])
我該如何解析?
這是一個自定義格式,這是不容易解析,但有一些變化,你可以將其轉換成JSON:
query(
與{
}
)
"
與\"
'
與"
如果你想保持query
,然後用{"query":{
取代它與}}
注意更換)
:這是一個非常簡單,因此脆弱的解決方案。更好的解決方案是讓你的服務器端框架生成適當的JSON併發送給瀏覽器。
編輯如果您有JSON字符串,則可以使用jQuery.parseJSON()來解析它。
數據序列化的格式使得將其解析爲JSON非常簡單。查看jsfiddle瞭解實例。我開始將原始數據作爲字符串獲取。接下來,我替換了單引號,並在字符串周圍添加了大括號以適應JSON字符串格式。
步驟1
query('id':[1],'title':['value'],'descr':['value2'])
到
'id':[1],'title':['value'],'descr':['value2']
步驟2
'id':[1],'title':['value'],'descr':['value2']
到
{"id":[1],"title":["value"],"descr":["value2"]}
現在你可以使用JSON.parse從序列化的字符串創建一個JavaScript對象。但請注意,格式中的所有值都是數組值。這是一個小例子來說明我的意思:
{
"int": 1,
"boolean": true,
"string": "foo",
"array": ["value1", true, 1234]
}
在你的榜樣每個值是一個數組的值,但JSON.parse解析它們視爲一個值,如果數組僅包含一個元素。
如果您返回JSON,那麼您可以使用JS輕鬆解析它。但是你顯示的格式是自定義的,所以你必須編寫你自己的解析器。請注意,這與jQuery或JSON無關。 –
由於您顯示的格式與JSON類似,因此可能最容易將ColdFusion代碼更改爲返回JSON,因此您可以使用[jQuery的JSON解析函數](http://api.jquery.com/jQuery.parseJSON/) 。如果我猜如何讀取自定義格式,那麼與您的示例相同的JSON將是'{'id':1,'title':'value','descr':'value2'}'。 –
自定義格式實際上是一個可用於序列化查詢的coldfusion函數。我將使用serializeJSON並查看它是如何工作的。 – dutchlab