• java/json 生成和解析数据的两种编程模型


     

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

    在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
    • 对象表示为键值对
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组

    为了生成和解析JSON数据,有两种编程模型,类似于用于XML文档的编程模型。

    • 对象模型创建一个表示内存中JSON数据的树。然后可以导航,分析或修改树。这种方法最灵活,允许进行需要访问树的完整内容的处理。但是,它通常比流模型慢,需要更多内存。对象模型通过一次导航整个树来生成JSON输出。

    • 流模型使用基于事件的解析器,一次读取一个元素的JSON数据。当对象或数组开始或结束,找到键或找到值时,解析器生成事件并停止处理。应用程序代码可以处理或丢弃每个元素,然后解析器继续执行下一个事件。这种方法适用于本地处理,其中元素的处理不需要来自其余数据的信息。流模型通过一次使用一个元素进行函数调用来生成给定流的JSON输出。

    对象模型:在内存中创建一个映射json数据的树,这种方式是将数据全部存在内存中,随时通过递归查找的方式,来遍历数据树的每一个节点,来导航整个树生成和解析json数据。这种方式因为树的多节点性变得很灵活,但要遍历整棵树,或者每次都要递归来查找,速度慢。

    流模型:流模型基于事件解析器,一次只读取一个元素的json数据。当有数据时解析器找到值或者键并生成事件,然后处理事件,随后继续解析器执行下一个事件,如此重复知道数据处理结束。这种方法消耗内存少,读取后处理释放,不占用过多内存;并且一次使用一个元素进行函数调用来生成给定流的JSON输出速度相对快。

  • 相关阅读:
    LR问题集锦(二)
    报错“you do not have a license for this Vuser type”
    LoadRunner:Error 10344
    loadrunner 录制脚本后登陆用户名是乱码
    经典语句
    jprofiler
    数据类测试的一些方法
    中文页面显示和英文页面显示,不一样的语言显示,会对性能有影响哇
    LoadRunner问题集锦
    用loadrunner做压力测试,怎样把应用服务器压死
  • 原文地址:https://www.cnblogs.com/wdyaoyao/p/10763365.html
Copyright © 2020-2023  润新知