0

我正在使用 ColdFusion 从 cfc 到 Ajax 数据并返回序列化的数据。控制台以这种格式显示数据。

query('id':[1],'title':['value'],'descr':['value2']) 

我该如何解析这个?

4

2 回答 2

1

这是一种不易解析的自定义格式,但通过一些更改,您可以将其转换为 JSON:

  1. 替换query({
  2. )_}
  3. 替换"\"
  4. 替换'"

如果要保留query,则将其替换为{"query":{并替换)}}

注意:这是一个非常简单且因此很脆弱的解决方案。更好的解决方案是让您的服务器端框架生成正确的 JSON 并将其发送到浏览器。

编辑如果你有一个 JSON 字符串,你可以使用jQuery.parseJSON()来解析它。

于 2013-08-26T13:55:44.613 回答
0

您的数据被序列化的格式使得将其解析为 JSON 非常容易。请参阅 jsfiddle 以获取实时示例。我首先将原始数据作为字符串获取。接下来,我替换了单引号并在字符串周围添加了大括号以适应 JSON 字符串格式。

jsFiddle 示例


步骤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 会将它们解析为单个值。

于 2013-08-26T14:28:37.310 回答