我正在使用ColdFusion从cfc中获取Ajax数据并返回序列化的数据。控制台以此格式显示数据。
query('id':[1],'title':['value'],'descr':['value2'])
我如何解析这个?
答案 0 :(得分:1)
这是一种不易解析的自定义格式,但只需进行一些更改,您就可以将其转换为JSON:
query(
替换为{
)
替换为}
"
替换为\"
'
替换为"
如果您想保留query
,请将其替换为{"query":{
,并将)
替换为}}
注意:这是一个非常简单且易于解决的问题。更好的解决方案是让您的服务器端框架生成适当的JSON并将其发送到浏览器。
编辑如果你有一个JSON字符串,你可以使用jQuery.parseJSON()来解析它。
答案 1 :(得分:0)
您的数据序列化格式使得将其解析为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会将它们解析为单个值。