详述JavaScript 代码显示经过 JSON 序列化的文本
创始人
2024-06-19 22:51:15
0

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. 2007-10-14T12:12:12Z 

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

  1.  xmlns="http://www.w3.org/2005/Atom">   ... 
  2.  </FONT></STRONG>Example Feed<STRONG><FONT color=#006699>   type="html">

    This is an example feed

     
  3.   xml:lang="fr">...  ... 

注意,这只是最简单的情形,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":[      "..."    ]  } } 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...