使用JavaScript解析序列化数据
Using JavaScript to parse serialized data
我使用ColdFusion从cfc中Ajax数据,并返回序列化的数据。控制台以这种格式显示数据。
query('id':[1],'title':['value'],'descr':['value2'])
我该如何解析?
这是一种自定义格式,不容易解析,但只需进行一些更改,就可以将其转换为JSON:
- 将
query(
替换为{
- 将尾部
)
替换为}
- 用
'"
替换"
- 用
"
替换'
如果你想保留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将它们解析为单个值。
相关文章:
- 序列化数据属性中对象的最可靠方法
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- PHP未从AJAX接收序列化数据
- 序列化数据和 onRender in Marionette.CompositeView 之间的区别
- 使用$.post将jquery mobile的序列化数据传递到PHP
- 在复合视图中序列化数据
- 如何发布序列化数据以及 jQuery.getScript() 调用
- jQuery 序列化数据和 PHP $_POST 不匹配
- 使用JavaScript解析序列化数据
- 通过ajaxsetup发布带有附加参数的表单序列化数据
- jQuery-访问其他地方的序列化数据
- 发送序列化数据和其他参数;不起作用
- 如何反序列化数据数组
- JQGrid在发布到服务器之前序列化数据
- 如何在Ajax中验证序列化数据
- 下载基于自定义序列化数据生成的文件
- 如何强制jQuery Ajax序列化数据
- 如何选择从开始日期到结束日期(即不包括结束日期)开始的序列化数据
- 从序列化数据中解析浮点数
- 更改表单序列化数据