一种构建json格式化数据的方法及装置

文档序号:1215798 发布日期:2020-09-04 浏览:5次 >En<

阅读说明:本技术 一种构建json格式化数据的方法及装置 (Method and device for constructing JSON formatted data ) 是由 田津津 万振 赵鹏 于 2019-02-28 设计创作,主要内容包括:本发明公开了一种构建JSON格式化数据的方法及装置,此方法包括:监听文本输入区域的输入操作,获取所述文本输入区域的输入信息,判断所述输入信息是否符合JSON格式标准,所述输入信息符合JSON格式标准时,将所述输入信息根据所述JSON格式标准转换为JSON格式数据;所述输入信息不符合JSON格式标准时,提示所述输入信息中导致输入信息不符合JSON格式标准的部分。本发明集多种JSON编辑器的优点于一身,操作简便、富有实用性和易用性,可以应用于绝大数JSON数据格式的设计和分析场景。(The invention discloses a method and a device for constructing JSON formatted data, wherein the method comprises the following steps: monitoring input operation of a text input area, acquiring input information of the text input area, judging whether the input information meets JSON format standards, and converting the input information into JSON format data according to the JSON format standards when the input information meets the JSON format standards; and prompting the part of the input information, which causes the input information not to conform to the JSON format standard, when the input information does not conform to the JSON format standard. The method integrates the advantages of multiple JSON editors, is simple and convenient to operate, is high in practicability and usability, and can be applied to the design and analysis scenes of most JSON data formats.)

一种构建JSON格式化数据的方法及装置

技术领域

本发明涉及数据处理技术领域,尤其涉及一种构建JSON格式化数据的方法及装置。

背景技术

JSON是一种轻量级的数据交换格式,可在不同平台之间进行数据交换,由于其具有可读、便于快速编写等良好的特性而代替了XML成为了目前主流的数据交换格式,被应用在各种各样的数据交换场景中。

虽然JSON语法简单,使用普通的文本编辑器就可编写,但是对于编写结构复杂的JSON数据来说,使用普通的文本编辑器的操作较为繁琐,普通的文本编辑器的功能很简略,并且容易出现操作错误和编辑错误。

例如:现有技术中直接通过浏览器成功调用某个web应用接口,或者是在浏览器的web调试模式下,得到了来自后台响应的杂乱的JSON数据时,需将其格式化成清晰的结构,以便于分析。现有的JSON编辑器虽然也能格式化杂乱的JSON结构,但处理的方式不够简便。通常需要先用鼠标选中浏览器上的JSON字符串,并复制该JSON字符串到JSON编辑器中;然后点击JSON编辑器界面上的相关按钮对JSON字符串进行格式化。至少需要经过这两个步骤才能把杂乱的JSON数据格式化成结构清晰的形式,在操作上不够简洁。

发明内容

为了解决上述技术问题,本发明提供了一种构建JSON格式化数据的方法及装置。

本发明提供的构建JSON格式化数据的方法,包括:

监听文本输入区域的输入操作,获取所述文本输入区域的输入信息,判断所述输入信息是否符合JSON格式标准,所述输入信息符合JSON格式标准时,将所述输入信息根据所述JSON格式标准转换为JSON格式数据;所述输入信息不符合JSON格式标准时,提示所述输入信息中导致输入信息不符合JSON格式标准的部分。

进一步地,上述构建JSON格式化数据的方法还具有以下特点:

所述判断所述输入信息是否符合JSON格式标准包括:

通过字符串转JSON对象的方法对编辑区内的文本内容进行字符串转JSON对象的操作;

如果所述字符串转JSON对象的操作没有输出异常,则表示编辑器内的文本内容为标准的JSON格式;

如果所述字符串转JSON对象的操作输出异常,则通过执行函数来执行编辑区内的文本内容;

如果执行函数输出异常,则表示该编辑器内的文本内容不是标准的JSON格式;

如果执行函数未输出异常,则通过JSON对象转字符串的方法对执行函数的执行结果进行JSON对象转字符串的操作;

如果所述JSON对象转字符串的操作返回字符串,则表示编辑器内的文本是标准的JSON格式;

如果所述JSON对象转字符串的操作返回的是未定义,则表示编辑器内的文本不是标准的JSON式。

进一步地,上述构建JSON格式化数据的方法还具有以下特点:

所述监听文本输入区域的输入操作包括:监听所述文本输入区域的输入操作是否是换行操作,在监听到换行操作后,确定所述换行操作在输入文本中的位置对应的JSON格式数据中的位置,在此位置处执行预设数量的空格的缩进操作。

进一步地,上述构建JSON格式化数据的方法还具有以下特点:

所述方法还包括:

监听对分屏按钮的触发信号;

监听到对分屏按钮的触发信号后,复制原编辑区域中的部分或全部标签的处理逻辑以及文本输入区域的处理逻辑,所述标签包括并行的JSON数据标签、功能标签;

将显示区域划分为两个编辑区域,使用原编辑区域中的标签和文本输入区域的处理逻辑维护第一编辑区域,使用复制后的标签和文本输入区域的处理逻辑维护第二编辑区域。

进一步地,上述构建JSON格式化数据的方法还具有以下特点:

所述方法还包括:

监听添加新按钮控件的触发信号;

监听到添加新按钮控件的触发信号后,添加新的按钮,设置此按钮对应的点击事件。

进一步地,上述构建JSON格式化数据的方法还具有以下特点:

监听用户输入内容的变化,在用户输入内容的变化达到变化阈值时,保存用户输入内容以及编辑器中各组件的状态;

意外重启所述编辑器时,装载已保存的所述用户输入内容以及编辑器中各组件的状态。

本发明提供的构建JSON格式化数据的装置包括:

监听模块,用于监听文本输入区域的输入操作,获取所述文本输入区域的输入信息;

语法判断模块,用于判断所述输入信息是否符合JSON格式标准;

转换模块,用于在所述输入信息符合JSON格式标准时,将所述输入信息根据所述JSON格式标准转换为JSON格式数据;

提示模块,用于在所述输入信息不符合JSON格式标准时,提示所述输入信息中导致输入信息不符合JSON格式标准的部分。

进一步地,上述构建JSON格式化数据的装置还具有以下特点:

所述语法判断模块还用于使用以下方法判断所述输入信息是否符合JSON格式标准:

通过字符串转JSON对象的方法对编辑区内的文本内容进行字符串转JSON对象的操作;

如果所述字符串转JSON对象的操作没有输出异常,则表示编辑器内的文本内容为标准的JSON格式;

如果所述字符串转JSON对象的操作输出异常,则通过执行函数来执行编辑区内的文本内容;

如果执行函数输出异常,则表示该编辑器内的文本内容不是标准的JSON格式;

如果执行函数未输出异常,则通过JSON对象转字符串的方法对执行函数的执行结果进行JSON对象转字符串的操作;

如果所述JSON对象转字符串的操作返回字符串,则表示编辑器内的文本是标准的JSON格式;

如果所述JSON对象转字符串的操作返回的是未定义,则表示编辑器内的文本不是标准的JSON式。

进一步地,上述构建JSON格式化数据的装置还具有以下特点:

所述装置还包括格式美化模块;

所述监听模块,还用于监听所述文本输入区域的输入操作是否是换行操作;

所述格式美化模块,用于在所述监听模块监听到换行操作后,确定所述换行操作在输入文本中的位置对应的JSON格式数据中的位置,在此位置处执行预设数量的空格的缩进操作。

进一步地,上述构建JSON格式化数据的装置还具有以下特点:

所述装置还包括界面处理模块;

所述监听模块,还用于监听对分屏按钮的触发信号;

所述界面处理模块,还用于在所述监听模块监听到对分屏按钮的触发信号后,复制原编辑区域中的部分或全部标签的处理逻辑以及文本输入区域的处理逻辑,所述标签包括并行的JSON数据标签、功能标签;将显示区域划分为两个编辑区域,使用原编辑区域中的标签和文本输入区域的处理逻辑维护第一编辑区域,使用复制后的标签和文本输入区域的处理逻辑维护第二编辑区域。

进一步地,上述构建JSON格式化数据的装置还具有以下特点:

所述装置还包括界面处理模块;

所述监听模块,还用于监听添加新按钮控件的触发信号;

所述界面处理模块,还用于在所述监听模块监听到添加新按钮控件的触发信号后,添加新的按钮,设置此按钮对应的点击事件。

进一步地,上述构建JSON格式化数据的装置还具有以下特点:

所述装置还包括保存模块和重构模块;

所述监听模块,还用于监听用户输入内容的变化;

所述保存模块,用于在用户输入内容的变化达到变化阈值时,保存用户输入内容以及编辑器中各组件的状态;

所述重构模块,用于在意外重启所述编辑器时,装载已保存的所述用户输入内容以及编辑器中各组件的状态。

本发明集多种JSON编辑器的优点于一身,操作简便、富有实用性和易用性,可以应用于绝大数JSON数据格式的设计和分析场景。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是构建JSON格式化数据的方法的流程图;

图2是构建JSON格式化数据的方法的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

如图1所示,构建JSON格式化数据的方法包括:

步骤101,监听文本输入区域的输入操作,获取文本输入区域的输入信息;

步骤102,判断输入信息是否符合JSON格式标准;

步骤103,输入信息符合JSON格式标准时,将输入信息根据JSON格式标准转换为JSON格式数据;输入信息不符合JSON格式标准时,提示输入信息中导致输入信息不符合JSON格式标准的部分。

其中,

步骤101中,监听文本输入区域的输入操作包括:监听文本输入区域的输入操作是否是换行操作,在监听到换行操作后,确定换行操作在输入文本中的位置对应的JSON格式数据中的位置,在此位置处执行预设数量的空格的缩进操作。在现有技术中的普通编辑器中,在JSON格式数据需要进行缩进的时候,要通过手动的方式控制缩进。相比此现有技术的方式,本发明可以完成自动缩进。监听文本输入区域的启动方式可以是点击编辑器界面的用于表示是否启动监听功能的控件(例如,编辑器界面上设置有“监听文本输入区域”的复选框,在点击勾选后表示启动监听,在取消勾选后表示禁止监听)。

步骤102中判断输入信息是否符合JSON格式标准包括:

通过字符串转JSON对象的方法(例如javascript内置的JSON对象的parse方法)对编辑区内的文本内容进行字符串转JSON对象的操作;

如果字符串转JSON对象的操作没有输出异常,则表示编辑器内的文本内容为标准的JSON格式;

如果字符串转JSON对象的操作输出异常,则通过执行函数(例如javascript的eval函数)来执行编辑区内的文本内容;

如果执行函数输出异常,则表示该编辑器内的文本内容不是标准的JSON格式;

如果执行函数未输出异常,则通过JSON对象转字符串的方法(例如JSON对象的stringify方法)对执行函数的执行结果进行JSON对象转字符串的操作;

如果JSON对象转字符串的操作返回字符串,则表示编辑器内的文本是标准的JSON格式;

如果JSON对象转字符串的操作返回的是未定义,则表示编辑器内的文本不是标准的JSON式。

步骤103中输入信息不符合JSON格式标准时,根据通过字符串转JSON对象的方法(例如javascript内置的JSON对象的parse方法)输出异常时的异常信息定位方式确定输入信息中导致输入信息不符合JSON格式标准的部分。

本方法还包括:监听对分屏按钮的触发信号;监听到对分屏按钮的触发信号后,复制原编辑区域中的部分或全部标签的处理逻辑以及文本输入区域的处理逻辑,所述标签包括并行的JSON数据标签、功能标签;将显示区域划分为两个编辑区域,使用原编辑区域中的标签和文本输入区域的处理逻辑维护第一编辑区域,使用复制后的标签和文本输入区域的处理逻辑维护第二编辑区域。例如:一旦“分屏按钮”被单击,则触发一个分屏点击事件,从而执行相应代码,通过代码中设置的参数计算出屏幕的长宽尺寸,最终在当前界面中增加一个可编辑区域。在用户使用进程中,经常需要同时对多个JSON数据进行对比、分析和修改。而现有的JSON编辑器在界面上提供的编辑区域最多只有一个,不能满足需求。本方法可以解决此需求,将界面中的一个编辑区域分隔成两个编辑区域,可以在一个显示界面内同时编辑或者分析比对两份JSON数据,极大的提高了编辑器的实用性。每个分屏可以同时创建多个标签,用于负责不同标签的处理逻辑相互之间通过事件隔离的技术进行处理,使得任一屏的任一标签对应的编辑器之间没有任何关联,也不会产生任何干扰。

本方法还包括:监听添加新按钮控件的触发信号;监听到添加新按钮控件的触发信号后,添加新的按钮,设置此按钮对应的点击事件。例如:图形界面模块提供了相应的“添加标签”按钮,后台提供与之对应的点击事件及其处理方法。一旦“添加标签”按钮被单击,或者标签栏被双击,则会触发“添加标签”的点击事件,从而执行相应的方法初始化一个新的标签对象,最终在界面上增加一个新的标签。

本方法还包括:

监听用户输入内容的变化,在用户输入内容的变化达到变化阈值时,保存用户输入内容以及编辑器中各组件的状态;意外重启所述编辑器时,装载已保存的所述用户输入内容以及编辑器中各组件的状态。例如:当用户的输入变化达到一定的阈值(比如10个字符)的时候程序自动将输入内容保存到本地IndexedDB数据库,当页面被意外关闭的时候,自动从IndexedDB内提取最新保存的数据展现到输入框。

具体举例如下:

在浏览器支持indexDB的情况下,启动本方法的程序后,程序会判断是否需要创建一个indexDB的数据库,如果数据库存在,就读出数据库信息并执行后续处理,否则创建数据库,并在该数据库下初始化一个Object Store用于存储当前窗口的标签信息和用户输入的文本信息,其中标签名字作为key,标签中文本框内的字符作为value。

在文本编辑页面,编辑器监听模块会监听用户输入是否达到了程序设定的阈值;一旦达到阈值,则程序调用代码执行步骤(A),否则继续监听;

步骤(A),文本框内的数据达到了程序阈值,负责处理文本记忆功能的代码便会调用文本存储代码:①读取当前窗口内的所有标签对象,统计标签的个数;②遍历标签对象,读取标签对象的名字及其文本框内的文本数据,将标签名作为key,标签对应的文本内容作为value,在遍历标签对象的过程中,将标签名key和文本内容value存入indexDB数据库中。

步骤(4)当编辑器页面正常关闭或者不小心被关闭,重新打开编辑器后,程序会判断是否存在indexDB数据库,在数据库存在的情况下,读出数据库中的数据,然后调用图形界面模块中提供的restore方法重新构造页面。

在重新构造页面时,使用已封装的restore方法,遍历从indexDB数据库读到的数据(包括标签名和文本内容),然后构造自定义的标签对象,将标签名和文本内容赋值给标签对象,赋值结束后进一步将该标签对象渲染到页面上显示,从而达到了文本记忆和恢复的功能。

此功能基于HTML5标准开发,通过客户端数据库IndexedDB来实现编辑器内容的即时保存,即便用户不小心关闭浏览器,或者浏览器意外崩溃的情况下,用户的输入也不会丢失。解决了现有技术中JSON编辑器中,当用户不小心关闭页面以后,导致之前设计的JSON数据就丢失并且即使通过浏览器的恢复“上次关闭的标签”功能也无法恢复之前编辑的数据的问题。

本方法还可以对JSON结构数据进行自动美化,提高用户的使用体验。例如:判断JSON结构数据中的key和value,对此两种数据进行不同颜色的高亮显示,例如key用红色显示,value用蓝色显示,以凸显出JSON数据的键值对关系。此高亮美化功能与上述语法检测功能可以同时进行,并且不会因为出现了JSON语法错误而不进行高亮美化。除了高亮的方式,本方法还可以执行字符间距自动控制的美化方式,使最终的JSON格式数据呈现出整齐、美观的效果。

本发明集多种JSON编辑器的优点于一身,操作简便、富有实用性和易用性,可以应用于绝大数JSON数据格式的设计和分析场景。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种开放式企业级信息系统的信息转换方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!