使用JavaScript解析序列化数据

Using JavaScript to parse serialized data

本文关键字:序列化 数据 JavaScript 使用      更新时间:2023-09-26

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

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

我该如何解析?

这是一种自定义格式,不容易解析,但只需进行一些更改,就可以将其转换为JSON:

  1. query(替换为{
  2. 将尾部)替换为}
  3. '"替换"
  4. "替换'

如果你想保留query,那么用{"query":{替换它,用}} 替换)

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

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

数据的序列化格式使解析为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将它们解析为单个值。