详述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 属性;
而且 HTML 和 XHTML 标记可以包含需要解析的相对 URI 。由于 Atom content 元素支持 Base64 编码的内容、任意 XML 标记和使用 src 属性引用的外部内容,这使得序列化过程更加困难 。 对 Atom 内容进行 JSON 序列化的目的是找到一种通用的表示方法,该方法能够尽可能一致地捕获这些选项 。清单 18 展示了一个带有 3 种文本结构的提要示例 。
title 元素为纯文本 。它需要继承提要的语言上下文,否则不具备描述性 。subtitle 元素包含转义的 HTML 标记 。right 元素也是纯文本,但它覆盖了语言上下文 。清单 19 展示了这 3 个元素的JavaScript 代码 。
注意,这只是最简单的情形,title 被序列化为一个简单字符串 。但是,由于 right 元素中的语言上下文时刻都会变化,所以尽管它是纯文本,也被序列化为包含两个字段(attributes 和 children)的对象 。 对于 subtitle 元素,JavaScript 代码标记被解析并呈现为一种分层结构 。XHTML 标记也使用相同的结构(清单 20 和 21) 。
|