详述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 属性;

  • 使用服务器进行处理JSON 解析器说明介绍
  • 大致说明JSON 对象的相关使用字符
  • 概述JSON定义法的相关使用技巧和说明
  • 详细阐述JSON结构的格式说明特点
  • 使用JSON数值结构说明介绍使用

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

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

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

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

  1. <feed xmlns="http://www.w3.org/2005/Atom">   ... 
  2.  <title>Example Feedtitle>  <subtitle type="html"><p>This is an example feedp>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":[      "..."    ]  } }