作者:创世魂
● 帮助说明
本类位于“JSON数据访问支持”模块中。
● 本类说明
JSON是一种轻量级的数据交换格式,可以理解为易语言当中的“写配置项”功能。
当然JSON功能要更多,可以多层嵌套存储一些复杂的数据。
JSON的存储要使用“键名”和“键值”,大致数据格式如下图。
1、以精易网页助手2.66版本为准。
图左:为JOSN对象类文本代码。
图右:为解析到树形框后显示效果,更加方便理解JSON格式。
2、JSON对象类标准格式为以“{”开始,最终以“}”结尾。
键名:用英文双引号包含。
键值:可以使用“文本”,“整数”,“小数”,“长整数”,“逻辑”(true为真、false为假)
以及“对象键值”(可使用json对象类或json数组类当键值)。
3、利用精易网页助手解析到树型框后(图右),凡是以“象”文字开始的代表为“JSON对象类”。
以“组”文字开始的代表为“JSON数组类”。
● 到可读文本
“到可读文本”帮助文档:
本方法可将json对象转换为可读的文本数据。
参数1:填写要操作的json对象,通过变量名调用本方法时不需要写本参数。
参数2:填写json文本缩进的空格数。
“置入小数值”帮助文档:
将某个小数值置入到当前JSON对象类中,失败返回空对象。
代码编写如下图:
定义类型为“JSON对象类”变量,调用“置入小数值()”方法置入一个小数。
通过“JSON对象”变量调用“到可读文本()”方法,将json转换成文本显示在编辑框中。
运行效果如下图:
● 置入整数值
以上几个方法就是用于置入不同类型的数据到JSON对象中。
代码编写如下图:
1、定义类型为“JSON对象类”的变量。
2、分别调用以上方法置入数据。
3、出了“到可读文本()”方法外,“到文本()”方法也可以将json转换成文本显示。
运行效果如下图:
● 置入对象值
帮助文档如下图:
通过本方法可将一个“JSON对象类”或者“JSON数组类”放入当前对象内嵌套。
本方法失败返回空对象。
代码编写如下图:
1、定义名称为“对象1”的json变量,置入一些数据。
2、定义名称为“对象2”的变量,置入普通数据后,可调用“置入对象值()”方法将“对象1”置入当前JSON中。
运行效果如下图:
可看到当JSON对象类被嵌套后,依然存在首尾“{}”符号。
● 取小数值、 ● 取整数值、 ● 取文本值、 ● 取逻辑值、 ● 取长整数值
以上几个方法用法一致,不同之处就是要取的类型不同,此处举例“取文本值()”方法。
“取文本值”帮助文档:
通过本方法可取出指定“键名”的“键值”,如果不存在将返回默认值。
● 创建自文本数据
帮助文档如下图:
通过“json文本数据”创建当前对象,如果创建失败返回“空对象”。
准备如下JSON文本数据:
{
"键名1":"键值1",
"键名2":"键值2"
}
代码编写如下图:
1、首先定义名称为“json数据”的常量值,将准备的json文本导入。
2、调用“创建自文本数据()”方法创建当前json对象。
3、最后调用“取文本值()”方法取出指定键名的键值。
运行效果如下图:
● 取值
帮助文档如下图:
当指定键值的目标类型不确定时,可通过本方法取出对象数据。
取出的对象类数据可通过“到文本()”方法直接将其转换成要取的数据。
准备如下JSON文本:
{
"键名1":111
}
代码编写如下图:
1、定义常量导入准备好的JSON文本数据。
2、调用“创建自文本数据()”方法创建json对象。
3、最后调用“取值()”取出数据后强制“到文本()”显示在编辑框。
运行效果如下图:
● 取对象值
帮助文档如下图:
调用本方法可取出JSON数据中指定“键名”的“JSON对象类”。
准备一段存在嵌套JSON对象的JSON文本:
{
"键名1":"键值1",
"嵌套对象":{
"嵌套1":"嵌套键值"
}
}
代码编写如下图:
1、定义文本型的常量值导入json文本。
2、创建JSON对象后可直接调用“取对象值()”方法取出出被嵌套的JSON对象。
3、最后转换成文本显示在编辑框。
运行效果如下图(GIF):
● 成员数(读)
帮助文档如下图:
通过本属性可取出当前json对象的成员数。
代码编写如下图:
1、“按钮1”被点击后,设置三个json键名。
2、“按钮2”被点击后,调用当前属性取出成员数。
运行效果如下图(GIF):
● 创建自数组
帮助文档如下图:
本方法可通过指定的键名数组,创建一个新的JSON对象类。
准备JSON数据:
{
"1":"键值1",
"2":"键值2",
"3":"键值3"
}
代码编写如下图:
1、定义文本常量将准备的JSON文本放入初始值中。
2、定义“键名数组”,数组成员分别是“1”、“2”。
3、将json文本创建JSON对象后继续根据“键名数组”创建JSON对象。
4、最后将创建的JSON对象显示在编辑框中。
运行效果如下图:
最终结果,键名“3”和对应的键值都不存在,证明键名数组创建成功。
● 创建自解析对象
帮助文档如下图:
本方法可通过“JSON解析类”创建当前JSON对象,失败返回空对象。
JSON数据准备:
{
"1":"one",
"2":"two",
"3":"three"}
代码编写如下图:
1、定义“JSON文本”常量值,将json文本放入初始值中。
2、定义“JSON对象类”变量,勾选参考。
3、通过“JSON解析类.创建自文本()”创建JSON解析对象,将创建的对象填入“创建自解析对象()”方法中。
4、通过“JSON”变量取文本值即可取出json键值,用来验证是否创建成功。
运行结果如下图(GIF):
● 到JSON数组
帮助文档如下图:
本方法的作用是通过“JSON键名数组”取出所对应的“键值数组”并返回。
转换失败返回空对象。
JSON数据准备:
准备如下图所示的JSON文本:JSON对象类嵌套JSON数组类,数组中嵌套三组JSON对象类。
{
"名称":"JSON测试",
"数组名称":[
{
"名称":"火山软件",
"网址":"Voldev"
},
{
"名称":"火山软件",
"网址":"Voldev"
},
{
"名称":"火山软件",
"网址":"Voldev"
}
]
}
本方法较难理解,拆解成两部分讲解。
第一部分:
1、定义“键名数组”变量,初始值填写两个成员的文本数组。
2、定义基础类为“JSON数组类”的变量,通过“JSON数组类.创建自数组()”方法赋值给此变量。
到此完成“JSON键名数组创建”。
3、定义“JSON文本”常量值,导入JSON数据。
4、定义两个变量,类型分别为“JSON对象类”和“JSON数组类”。
5、通过“JSON文本”创建“JSON对象”。
6、调用当前方法,取出键名数组对应的键值数组,并转换成可读文本。
运行效果(1):
最终转换出来的数据并没有“键名数组”中的两个键名,但是取出了对应的键值。
下面进行第二部分,取出所有键值。
第二部分:
1、使用“//”屏蔽“到可读文本()”方法。
2、通过“JSON数组.取文本值(0)”,取出的就是“名称”的键值。
3、“数组名称”的键值是数组,所以需要使用“循环()”方法取出。
运行效果(2):
所有的键值将从json数据中取出。
● 文本转义
帮助文档如下图:
通过本方法可将带有转义符的文本,将转义符一同输出并返回,同时会增加引号。
代码编写如下图:
“\n”为换行符,通过本方法可将“\n”直接返回。
运行结果如下图:
最终返回结果会自动添加引号。
● 是否拥有指定数据
帮助文档如下图:
通过本方法可以判断JSON数据中是否存在指定“键名”。
存在返回真,不存在返回假。
JSON数据准备:
{
"火山":"VolDev",
"平台":"voldp"
}
代码编写如下图:
1、定义文本常量,导入准备的JSON数据。
2、定义类型为“JSON对象类”的变量,勾选参考。
3、“按钮1”被点击后,创建JSON对象,判断“火山”是否存在。
4、“按钮2”被点击后,创建JSON对象,故意判断一个不存在的键名“123”。
运行效果如下图(GIF):
● 移除指定对象
帮助文档如下图:
通过本方法可移除当前JSON对象内的指定键值,并返回当前键值。
JSON数据准备:
{
"1":"键值1",
"2":"键值2",
"3":"键值3",
"4":"键值4",
"5":"键值5"
}
代码编写如下图:
1、定义“json文本”常量,导入json数据。
2、定义类型为“JSON对象类”的变量,勾选参考,通过“JSON文本”创建当前对象。
3、调用当前方法移除“3”,到文本转换后可取出“3”对应的“键值”。
4、最后将当前对象转换为可读文本。
运行效果如下图:
● 追加指定值
帮助文档如下图:
通过本方法可以给指定键名追加新的键值,追加后的键值后,原键值将会转换为数组类型。
如果追加的键名不存在,将在原json数据的基础上添加新的键名和键值。
代码编写如下图:
1、定义“JSON文本”常量,导入json数据(当前JSON数据与上一个方法相同)。
2、通过JSON文本创建JSON对象,调用“追加指定值()”方法追加数据。
3、最后转换成可读文本。
运行效果如下图:
左图:给已有的“键值”追加“新的键值”。
右图:给不存在的键名追加数据。
● 键名枚举器
帮助文档如下图:
通过本方法可创建“文本枚举器类”取出所有json数据的所有键名。
代码编写如下图:
1、定义“JSON文本”常量,导入json数据(当前JSON数据与上一个方法相同)。
2、通过JSON文本创建JSON对象。
3、调用当前方法创建“枚举器”。
4、利用“判断循环()”方法,循环取出所有成员。
运行效果如下图:
● 判断键值类型
说明:
在JSON数据操作中,可能会遇到复杂的JSON嵌套,有些可能是未知类型。
通过以上学习的知识,来实现通过“键名”如何判断当前键值是什么类型,从而做出对应的操作。
准备JSON文本:
从上到下键值类型依次为:文本,整数,json对象类,json数组类。
{
"1":"文本",
"2":10086,
"3":{
"3a":"3a键值"
},
"4":[
"数组1","数组2"
]
}
代码编写如下图:
1、定义“JSON文本”常量,导入JSON数据。
2、通过“JSON文本”创建JSON对象。
3、创建键名枚举器,循环枚举所有键名。
4、调用“取值()”方法,取出键值对象,依次判断是否属于指定类型。
5、 如果属于指定类型,将对应内容添加到编辑框中。
运行效果如下图:
最终结果和原JSON数据实际类型一致。