我正在使用 ColdFusion 从 cfc 到 Ajax 数据并返回序列化的数据。控制台以这种格式显示数据。
query('id':[1],'title':['value'],'descr':['value2'])
我该如何解析这个?
我正在使用 ColdFusion 从 cfc 到 Ajax 数据并返回序列化的数据。控制台以这种格式显示数据。
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 会将它们解析为单个值。