详述JavaScript 代码显示经过 JSON 序列化的文本

开发 前端
为每一个软件行业的从业人员,无论是开发人员、项目经理、还是测试人员,也要不断适应这个趋势,我认为JavaScript 代码只会使我们的工作更简单和更轻松。

JavaScript 代码 的数据输入模型,在序列化日期时,选择非常有限。我可以:将日期转换为日期的 JavaScript toString 序列(例如,2007 年 10 月 21 日 星期日 12:34:28 GMT-0700 (PDT)) 按日期在 Atom 文档中的呈现形式对其进行复制。

前两个选项可以在 JavaScript 中处理,不需要开发人员做太多的工作。也就是说,要获得正确的 JavaScript Date 对象,只需调用新的 Date(feed.updated)。但是,其缺点是,使用第一个选项会丢失与毫秒数和时区偏移有关的重要信息;

如果使用第二个选项,日期的 toString 序列会因实现和地区的不同而不同。尽管使用 RFC 3339 序列需要额外的工作,但这是避免数据丢失和数据含义不明的惟一选项。

文本结构

Atom 支持大量的文本和内容选项,到目前为止,这是在 JSON 序列化过程中碰到的最复杂最困难的问题。文本结构,比如 title、subtitle、summary 和 rights 元素,可以包含纯文本、转义 HTML 或JavaScript 代码;这些结构具有语言敏感性,因此必须考虑 xml:lang 属性;#t#

而且 HTML 和 XHTML 标记可以包含需要解析的相对 URI。由于 Atom content 元素支持 Base64 编码的内容、任意 XML 标记和使用 src 属性引用的外部内容,这使得序列化过程更加困难。

对 Atom 内容进行 JSON 序列化的目的是找到一种通用的表示方法,该方法能够尽可能一致地捕获这些选项。清单 18 展示了一个带有 3 种文本结构的提要示例。

  1. <updated>2007-10-14T12:12:12Z</updated> 

title 元素为纯文本。它需要继承提要的语言上下文,否则不具备描述性。subtitle 元素包含转义的 HTML 标记。right 元素也是纯文本,但它覆盖了语言上下文。清单 19 展示了这 3 个元素的JavaScript 代码

  1. <feed xmlns="http://www.w3.org/2005/Atom">   ... 
  2.  <title>Example Feed</title>  <subtitle type="html"><p>This is an example feed</p></subtitle> 
  3.  <rights xml:lang="fr">...</right>  ...</feed> 

注意,这只是最简单的情形,title 被序列化为一个简单字符串。但是,由于 right 元素中的语言上下文时刻都会变化,所以尽管它是纯文本,也被序列化为包含两个字段(attributes 和 children)的对象。

对于 subtitle 元素,JavaScript 代码标记被解析并呈现为一种分层结构。XHTML 标记也使用相同的结构(清单 20 和 21)。

  1. {  "title":"Example Feed",   "subtitle":{     "attributes":{       "type":"html"     },       
  2.  
  3. "children":[      {         "name":"p",         "attributes":{ },         "children":["This is an   
  4.  
  5. example feed" ]       }     ]  },  "rights":{    "attributes":{      "lang":"fr"    },      
  6.  
  7. "children":[      "..."    ]  } } 
责任编辑:chenqingxiang 来源: 计世网
相关推荐

2013-03-11 13:55:03

JavaJSON

2009-07-29 13:39:02

JSON序列化和反序列ASP.NET AJA

2021-11-18 07:39:41

Json 序列化Vue

2016-10-20 15:54:08

Python数据序列化

2010-03-19 15:54:21

Java Socket

2018-01-17 16:38:07

MSONJSON序列化

2016-12-20 14:55:52

JavaScript链式结构序列

2011-06-01 15:05:02

序列化反序列化

2022-08-06 08:41:18

序列化反序列化Hessian

2018-03-19 10:20:23

Java序列化反序列化

2024-10-07 08:26:53

2010-01-08 11:11:38

JSON 序列化

2024-01-30 13:32:51

JSON反序列化序列化

2009-06-14 22:01:27

Java对象序列化反序列化

2009-08-24 17:14:08

C#序列化

2011-06-01 14:26:11

序列化

2012-04-13 10:45:59

XML

2011-05-18 15:20:13

XML

2009-08-06 11:16:25

C#序列化和反序列化

2023-12-13 13:49:52

Python序列化模块
点赞
收藏

51CTO技术栈公众号