CN112015422A - 一种基于json的控制方法、客户端、服务器及系统 - Google Patents
一种基于json的控制方法、客户端、服务器及系统 Download PDFInfo
- Publication number
- CN112015422A CN112015422A CN201910464942.8A CN201910464942A CN112015422A CN 112015422 A CN112015422 A CN 112015422A CN 201910464942 A CN201910464942 A CN 201910464942A CN 112015422 A CN112015422 A CN 112015422A
- Authority
- CN
- China
- Prior art keywords
- json
- client
- instruction
- server
- response instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000003491 array Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 abstract description 3
- 239000007788 liquid Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于JSON的控制方法,客户端、服务器及系统,包括:S1、接收客户端发送的请求指令;S2、确认客户端的MAC地址合法后,建立与数据库的连接,发送请求指令至数据库,以获取数据库执行与请求指令对应的SQL指令并返回的对应的SQL执行结果;S3、接收SQL执行结果,转换SQL执行结果为JSON字符串格式的响应指令并发送至客户端,以使客户端执行响应指令。实施本发明能够易于解析,大大简化了服务器端和客户端的代码开发量,并且易于维护。
Description
技术领域
本发明涉及软件设计技术领域,更具体地说,涉及一种基于JSON的控制方法、客户端、服务器及系统。
背景技术
在软件设计领域,数据的交换是极其重要的实现功能。数据交换的快速、正确和便捷是用户的基本需求之一。尤其是随着宽带无线接入技术和移动终端技术的发展,越来越多个操作控制都基于网络进行。如何保证手持终端和服务器端之间安全、高效的数据交互,成为了开发者首要考虑的问题。尤其在新兴厨师机应用市场。传统的厨师机与服务器端数据交互方法基于XML,但是XML文件庞大,文件格式复杂,传输占带宽;服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;服务器端和客户端解析XML花费较多的资源和时间。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述现有技术缺陷,提供一种基于JSON的控制方法、客户端、服务器及系统。
本发明解决其技术问题所采用的技术方案是:构造一种基于JSON的控制方法,应用于服务器,包括:
S1、接收客户端发送的请求指令;
S2、确认所述客户端的MAC地址合法后,建立与数据库的连接,发送所述请求指令至所述数据库,以获取所述数据库执行与所述请求指令对应的SQL指令并返回的对应的SQL执行结果;
S3、接收所述SQL执行结果,转换所述SQL执行结果为JSON字符串格式的响应指令并发送至所述客户端,以使所述客户端执行所述响应指令。
优选地,所述JSON字符串包括对象和数组;
在所述步骤S3中,所述转换所述SQL执行结果为JSON字符串格式的响应指令包括:
通过JSONObject和JSONArray分别将所述SQL执行结果转换为所述对象和所述数组。
优选地,所述对象包括菜谱属性;所述数组包括菜谱的对应的操作步骤。
本发明还构造一种基于JSON的控制方法,应用于客户端,包括:
A1、发送请求指令至服务器,并接收所述服务器发送的与所述请求指令对应的响应指令;
A2、确认所述响应指令为JSON字符串格式以执行所述响应指令。
优选地,所述确认所述响应指令为JSON字符串格式包括:
A21、记录所述响应指令中的字符的字符状态;
A22、设定预设关键字,并根据所述预设关键字设置所述字符的字符状态;
A23、对所有字符进行递归以获取所有字符的字符状态并基于所述所有字符的字符状态确认所述响应指令为JSON字符串格式。
优选地,在所述步骤A3中,所述基于所述所有字符的字符状态确认所述响应指令为JSON字符串格式包括:
识别预设关键字符,根据所述预设关键字符判断对象、数组及与所述对象和数组对应的键值对,并确认所述对象与所述数组的嵌套关系。
优选地,所述执行所述响应指令包括,通过JSONObject和JSONArray分别获取所述对象和所述数组的具体内容以根据所述具体内容工作。
本发明还构造一种服务器,执行上面描述的基于JSON的控制方法。
本发明还构造一种客户端,执行上面描述的基于JSON的控制方法。
本发明还构造一种基于JSON的控制系统,包括上面描述的所述服务器和所述客户端,所述客户端与所述服务器通过网络连接。
实施本发明的一种基于JSON的控制方法、客户端、服务器及系统,具有以下有益效果:易于解析,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明一种基于JSON的控制方法的第一实施例的程序流程图;
图2是本发明一种基于JSON的控制方法的第二实施例的程序流程图;
图3是本发明一种基于JSON的控制方法的第三实施例的程序流程图;
图4是本发明一种基于JSON的控制系统一实施例的逻辑框图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
如图1所示,在本发明的一种基于JSON的控制方法第一实施例中,应用于服务器,包括:
S1、接收客户端发送的请求指令;
S2、确认客户端的MAC地址合法后,建立与数据库的连接,发送请求指令至数据库,以获取数据库执行与请求指令对应的SQL指令并返回的对应的SQL执行结果;
S3、接收SQL执行结果,转换SQL执行结果为JSON字符串格式的响应指令并发送至客户端,以使客户端执行响应指令。
具体的,客户端通过网络连接向服务器发送请求,这里以厨师机工作为例进行说明,厨师机客户端在工作过程中没通过网络连接向服务器请求获取菜谱,服务器在接收到厨师机客户端的请求指令后,会先确认厨师机客户端是否合法,该具体过程为通过获取厨师机客户端的MAC地址,并且通过该MAC地址对厨师机客户端的合法性进行判定。也可以确认该厨师机客户端为可识别的设备。在判定厨师机客户端合法后,服务器建立与数据库的连接,并将该从厨师机客户端接收的请求指令发送至数据库,数据库执行与请求指令对应的SQL指令,并且返回对应的SQL执行结果。服务器接到该执行结果后,将该执行结果转换为JSON字符串格式发送,作为服务器对厨师机客户端的请求指令的响应指令,客户端执行该响应指令。例如,厨师机客户端请求菜谱,那么数据库中获取对应的菜谱,服务器将该菜谱转换为JSON字符串格式发送至厨师机客户端,厨师机客户端执行该JSON字符串格式的菜谱,这样就完成了整个控制过程。
其中,在一些实施例中,SQL执行结果转换为JSON字符串的结构可以为下表,
名称 | 类型 | 说明 |
error_code | int | 返回状态码 |
reason | string | 返回状态说明 |
result | string | 返回结果集 |
data | string | 菜谱详情 |
total_num | int | 云菜谱总个数 |
page_num | int | page_num数据返回起始下标,默认0 |
response_num | int | response_num数据返回条数,最大30,默认10 |
id | string | 唯一标识 |
title | string | 菜谱名 |
tags | string | 菜谱标签 |
intro | string | 菜谱介绍 |
ingredients | string | 主料 |
burden | string | 配料 |
albums | string | 专辑(存放图片地址url数组) |
step | string | 步骤 |
name | string | 用料名称 |
type | string | 固体/液体类型(none、solid、liquid) |
quantity | string | 质量(单位ml(液体)、g(固体)) |
temp | string | 温度(单位:℃) |
time | string | 时间(单位:ms) |
desc | string | 描述(备选字段) |
可选的,JSON字符串包括对象和数组;在步骤S3中,转换SQL执行结果为JSON字符串格式的响应指令包括:通过JSONObject和JSONArray分别将SQL执行结果转换为对象和数组。具体的,JSON字符串的格式定义可以包括对象和数组,服务器在将SQL执行结果即请求的菜谱转换为JSON字符串格式的过程可以采用JSONObject和JSONArray分别转换,具体的,其基于JSONObject生成JSON字符串中的对象,基于JSONArray生成JSON字符串中的数组。
进一步的,对象包括菜谱属性;数组包括菜谱的对应的操作步骤。具体的,在JSON字符串的转换过程中,从SQL的执行结果中提出菜谱属性,作为JSON字符串中的对象,该菜谱属性可以包括该菜谱的编码,菜谱的名称,对菜谱的通用描述,以及菜谱对应的用量等不需要执行的操作。数组则可以包括菜谱对应的执行步骤,其为厨师机完成该菜谱时需要执行的步骤。
另,如图2所示,本发明的一种基于JSON的控制方法的第二实施例,应用于客户端,包括:
A1、发送请求指令至服务器,并接收服务器发送的与请求指令对应的响应指令;
A2、确认响应指令为JSON字符串格式以执行响应指令。
具体的,客户端通过网络连接向服务器发送请求,这里以厨师机工作为例进行说明,厨师机客户端在工作过程中没通过网络连接向服务器请求获取菜谱,服务器在接收到厨师机客户端的请求指令后,执行上面的操作后,发送与请求指令对应的响应指令至厨师机客户端,厨师机客户端收到该响应指令后会对该响应指令做一个确认,在确认该响应指令为JSON字符串格式后,执行该响应指令,及对应的菜谱。进行依照菜谱进行炒菜的动作。
可选的,如图3所示的实施例中,确认响应指令为JSON字符串格式包括:
A21、记录响应指令中的字符的字符状态;
具体的,在对响应指令的判定过程中,首先记录下响应指令中各字符的状态,例如可以先创建一个类来记录下字符的状态,状态的定义根据上面判断一个字符串是否是JSON字符串格式的若干方面来定义。其常用的为一下五个方面,
状态1:以“{“符号开始的状态;
状态2:设置字典值的状态;
状态3:以”\“转义符号开始的状态;
状态4:以”[“符号开始的状态;
状态5:子集嵌套开始的状态;
状态6:值的状态;
状态7:语法错误的状态。
其具体步骤可以参照一下实施例:
A22、设定预设关键字,并根据预设关键字设置字符的字符状态;具体的,可以根据不同的预设关键字,设置上面确认的字符的状态,其具体可参照以下实施例:
A23、对所有字符进行递归以获取所有字符的字符状态并基于所有字符的字符状态确认响应指令为JSON字符串格式。具体的,通过不断的递归,把每一个字符查看一遍,打上状态标记,直到每一个字符都检查完了就结束递归。然后根据递归完后的所有的字符状态就可以确认该响应指令是否为JSON字符串格式。例如,
进一步的,在步骤A3中,基于所有字符的字符状态确认响应指令为JSON字符串格式包括:
识别预设关键字符,根据预设关键字符判断对象、数组及与对象和数组对应的键值对,并确认对象与数组的嵌套关系。
具体的,在客户端接收到服务器的Json字符串之后,首先进行判断这个字符串是否是Json字符串,主要从以下几个方面判断:对象和数组,键值对(key-value)的判断,对象与数组的嵌套,包含“{”、“}”、“[”、“]”、“,”、“:”、“"”等7个关键符号,以及转义符号、空格、换行和回车的处理。可以理解,在JSON字符串格式中,数组用“[]”创建,对象用“{}”创建,并且使用Json基本都是用[]”或者“{}”创建的数组或对象,无论是数组还是对象,之间的元素都用“,”隔开;对象内部名称和值用“:”隔开,并且必须要用“:”隔开,不可单独存在属性名或者值;对象和数组可以互相嵌套,即数组中的一个元素可以是一个对象也可以是一个数组,同理对象中的一个属性的值可以是一个对象也可以是一个数组。这里可以定义预设关键字符为“{”、“}”、“[”、“]”、“,”、“:”、“"”等7个关键符号,并根据上述描述对应基于该7个关键符号建立的数组和对象,以及数组和对象的内容和关系,确定响应指令为JSON字符串。
进一步的,执行响应指令包括,通过JSONObject和JSONArray分别获取对象和数组的具体内容以根据具体内容工作。具体的,厨师机客户端在执行该响应指令时,是可以通过JSONObject提取JSON字符串格式中的对象内容,通过JSONArray提取JSON字符串格式中的数组内容,根据对象内容和数组内容完成厨师机客户端的工作。
另,本发明的一种服务器,其可以执行上面描述的基于JSON的控制方法,具体过程参照上文描述,这里不再赘述。
另,本发明的一种客户端,其可以执行上面描述的基于JSON的控制方法,具体过程参照上文描述,这里不再赘述。可以理解,客户端可以为厨师机客户端。
另,本发明还的一种基于JSON的控制系统,如图4所示,包括上面描述的服务器20和客户端10,客户端10与服务器20通过网络连接。具体的,其客户端10和服务器20的配合可以参照上文的描述,这里不再赘述。
可以理解的,以上实施例仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,可以对上述技术特点进行自由组合,还可以做出若干变形和改进,这些都属于本发明的保护范围;因此,凡跟本发明权利要求范围所做的等同变换与修饰,均应属于本发明权利要求的涵盖范围。
Claims (10)
1.一种基于JSON的控制方法,应用于服务器,其特征在于,包括:
S1、接收客户端发送的请求指令;
S2、确认所述客户端的MAC地址合法后,建立与数据库的连接,发送所述请求指令至所述数据库,以获取所述数据库执行与所述请求指令对应的SQL指令并返回的对应的SQL执行结果;
S3、接收所述SQL执行结果,转换所述SQL执行结果为JSON字符串格式的响应指令并发送至所述客户端,以使所述客户端执行所述响应指令。
2.根据权利要求1所述的基于JSON的控制方法,其特征在于,所述JSON字符串包括对象和数组;
在所述步骤S3中,所述转换所述SQL执行结果为JSON字符串格式的响应指令包括:
通过JSONObject和JSONArray分别将所述SQL执行结果转换为所述对象和所述数组。
3.根据权利要求2所述的基于JSON的控制方法,其特征在于,所述对象包括菜谱属性;所述数组包括菜谱的对应的操作步骤。
4.一种基于JSON的控制方法,应用于客户端,其特征在于,包括:
A1、发送请求指令至服务器,并接收所述服务器发送的与所述请求指令对应的响应指令;
A2、确认所述响应指令为JSON字符串格式以执行所述响应指令。
5.根据权利要求4所述的基于JSON的控制方法,其特征在于,所述确认所述响应指令为JSON字符串格式包括:
A21、记录所述响应指令中的字符的字符状态;
A22、设定预设关键字,并根据所述预设关键字设置所述字符的字符状态;
A23、对所有字符进行递归以获取所有字符的字符状态并基于所述所有字符的字符状态确认所述响应指令为JSON字符串格式。
6.根据权利要求5所述的基于JSON的控制方法,其特征在于,在所述步骤A3中,所述基于所述所有字符的字符状态确认所述响应指令为JSON字符串格式包括:
识别预设关键字符,根据所述预设关键字符判断对象、数组及与所述对象和数组对应的键值对,并确认所述对象与所述数组的嵌套关系。
7.根据权利要求6所述的基于JSON的控制方法,其特征在于,所述执行所述响应指令包括,通过JSONObject和JSONArray分别获取所述对象和所述数组的具体内容以根据所述具体内容工作。
8.一种服务器,其特征在于,执行权利要求1-3任意一项所述的基于JSON的控制方法。
9.一种客户端,其特征在于,执行权利要求4-6任意一项所述的基于JSON的控制方法。
10.一种基于JSON的控制系统,其特征在于,包括权利要求7所述的服务器和权利要求8所述客户端,所述客户端与所述服务器通过网络连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910464942.8A CN112015422A (zh) | 2019-05-30 | 2019-05-30 | 一种基于json的控制方法、客户端、服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910464942.8A CN112015422A (zh) | 2019-05-30 | 2019-05-30 | 一种基于json的控制方法、客户端、服务器及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112015422A true CN112015422A (zh) | 2020-12-01 |
Family
ID=73501671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910464942.8A Pending CN112015422A (zh) | 2019-05-30 | 2019-05-30 | 一种基于json的控制方法、客户端、服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015422A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624895A (zh) * | 2012-03-09 | 2012-08-01 | 亿赞普(北京)科技有限公司 | 网络业务请求的处理方法及系统 |
CN105554133A (zh) * | 2015-12-21 | 2016-05-04 | 世纪龙信息网络有限责任公司 | Http远程数据访问系统和方法 |
CN107465738A (zh) * | 2017-08-01 | 2017-12-12 | 深圳市金立通信设备有限公司 | 一种通信方法、服务器及计算机可读存储介质 |
-
2019
- 2019-05-30 CN CN201910464942.8A patent/CN112015422A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624895A (zh) * | 2012-03-09 | 2012-08-01 | 亿赞普(北京)科技有限公司 | 网络业务请求的处理方法及系统 |
CN105554133A (zh) * | 2015-12-21 | 2016-05-04 | 世纪龙信息网络有限责任公司 | Http远程数据访问系统和方法 |
CN107465738A (zh) * | 2017-08-01 | 2017-12-12 | 深圳市金立通信设备有限公司 | 一种通信方法、服务器及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
WENSHAO: "fastjson-1.2.58源码", pages 1 - 9, Retrieved from the Internet <URL:https://github.com/alibaba/fastjson/releases/tag/1.2.58> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11775501B2 (en) | Trace and span sampling and analysis for instrumented software | |
WO2022126983A1 (zh) | 电子报表文件导出方法、装置、设备及存储介质 | |
WO2022267457A1 (zh) | 电子表格数据处理方法、装置、设备及存储介质 | |
CN111683066A (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
WO2022057357A1 (zh) | 数据查询方法及装置、数据库系统 | |
CN110569036A (zh) | 一种前后端分离架构下的数据校验系统及其方法 | |
CN112817973A (zh) | 数据处理方法、装置、数据处理设备及存储介质 | |
CN113312336A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
US10901811B2 (en) | Creating alerts associated with a data storage system based on natural language requests | |
CN111209325A (zh) | 业务系统接口识别方法、装置及存储介质 | |
CN113688161A (zh) | 缓存数据查询方法、装置、设备及存储介质 | |
CN116126997B (zh) | 一种文献去重存储方法、系统、设备及存储介质 | |
US11016821B2 (en) | Resegmenting chunks of data for efficient load balancing across indexers | |
CN107330031A (zh) | 一种数据存储的方法、装置及电子设备 | |
CN112015422A (zh) | 一种基于json的控制方法、客户端、服务器及系统 | |
CN113407541B (zh) | 数据采集方法、设备、存储介质及装置 | |
CN111339170A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN111125264B (zh) | 基于扩展olap模型的超大集合分析方法及装置 | |
CN112532414B (zh) | 确定isp归属的方法、装置、设备及计算机存储介质 | |
CN111143398B (zh) | 基于扩展sql函数的超大集合查询方法及装置 | |
CN114070705A (zh) | 基于命令行的设备网管方法、介质及设备 | |
CN107943483B (zh) | 一种iOS中数据正向解析方法 | |
CN110932896A (zh) | 日志倒排索引的创建方法、装置、设备及可读存储介质 | |
JP7509886B2 (ja) | モノのインターネットにおいてサブスクリプションデータをプッシュするための方法および装置、並びにそれらのデバイスおよび記憶媒体 | |
CN111125147B (zh) | 基于扩展预计算模型和sql函数的超大集合分析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |