JSON/xml、Processing 以及收集Java的设计模型

JSON简介:

  1.基本介绍

  JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

  2.JSON语法

  在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:

  • 对象表示为键值对
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

  3.常用类型

  在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。

  对象:对象在 JS 中是使用花括号包裹 {} 起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。

  数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。

Java EE平台中的JSON  processing

  • 使用对象模型API

  对象模型API的四个用例:从JSON数据创建对象模型,从应用程序代码创建对象模型,导航对象模型以及将对象模型编写到流中:从JSON数据创建对象模型、从应用程序代码创建对象模型、导航对象模型、将对象模型写入流。

  • 使用Streaming API

       使用解析器读取JSON数据,流API是解析JSON文本的最有效方法;使用生成器编写JSON数据。

XML简介

  1.基本简介

  可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。

  XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

  • 可扩展标记语言是一种很像超文本标记语言的标记语言。
  • 它的设计宗旨是传输数据,而不是显示数据。
  • 它的标签没有被预定义。您需要自行定义标签。
  • 它被设计为具有自我描述性。
  • 它是W3C的推荐标准。

  2.格式特性

  它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,它仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:它极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。它和超文本标记语言语法区别:超文本标记语言的标记不是所有的都需要成对出现,它则要求所有的标记必须成对出现;HTML标记不区分大小写,它则大小敏感,即区分大小写。

XML处理模型(XML processing model)

XML处理模型定义了如何将XML文档是由解释应用。 然后可以使用不同视图在屏幕上呈现文档,用于处理XML数据等。模型可以分为两个阶段:用于定义数据模型的XML管道和旨在使用的后XML管道数据模型。  

  • XML管道

  XML管道是参与每个步骤的规范的XML处理器。如何以及何时在XML处理器中进行规范(由Unicode,IETF,W3C或其他组织定义)。

  • 数据模型

  基于已定义的子集规范:Unicode 3.1.0,RFC 2396,XML 1.0,命名空间,XML Base,XInclude,XML Schema和XLink / XPointer?或者仍然继续我们当前的方法(<7!),即每个XML应用程序定义自己的集合?当然,答案并不容易,但希望Infoset将减少XML管道中涉及的规范数量:Infoset,XInclude,XML Schema,XLink / XPointer(<4!)。PSV Infoset减少了这个数字:PSVI,XInclude,XLink / XPointer。

  这导致我们采用通用数据模型。由于历史原因,在W3C中开发了几个数据模型:DOM,XPath 1.0,Infoset,PSV Infoset,XML Query等。它们中的每一个都是向前一个添加/删除信息。例如,最近的XQuery 1.0和XPath 2.0数据模型正在PSV Infoset之上添加参考节点信息项。

  DOM数据模型添加了更多信息,例如CDATA部分或实体引用。由于向后兼容性原因,更改DOM数据模型会很困难,但是,使用加载和保存模型,DOM能够在不破坏向后兼容性的情况下满足Infoset的要求。我们还能够使用抽象模式/ PSVI对象模型来表示PSV信息集。恕我直言,应该针对PSVI定义每个新的XML应用程序,包括XInclude。

Java设计模型

  设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

  总体来说设计模式分为三大类:

  创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

原文地址:https://www.cnblogs.com/luv-letter/p/10633944.html