易语言中“类_json”的使用详解
在易语言编程中,处理JSON数据是常见需求,尤其是在与Web接口交互、解析配置文件或进行数据交换时,易语言通过“类_json”提供了对JSON数据的支持,本文将详细介绍“类_json”的基本用法,包括创建JSON对象、添加/修改数据、解析JSON字符串以及常见问题处理,帮助开发者快速这一功能。
认识“类_json”
“类_json”是易语言中用于操作JSON数据的核心类,支持JSON格式数据的创建、解析、修改和序列化,其本质是将易语言中的数据类型(如文本、整数、列表等)与JSON标准格式(如对象、数组[]、键值对等)进行相互转换,方便不同语言或系统间的数据传递。
创建JSON对象
使用“类_json”前,需先创建JSON对象实例,易语言中可通过“创建”或“初始化”方法创建JSON对象,常见两种方式:
直接创建空JSON对象
通过“创建 ()”方法创建一个空的JSON对象,后续可动态添加数据。
示例代码:
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 json对象, 类_json
' 创建空JSON对象
json对象.创建 ()
' 输出JSON字符串(此时为空对象 {})
信息框 (json对象.取JSON文本 (), 0, "提示")
通过JSON字符串初始化
若已有JSON格式字符串,可通过“解析 ()”方法将其解析为JSON对象,直接加载到内存中。
示例代码:
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 json对象, 类_json
.局部变量 json文本, 文本
' 定义JSON字符串(包含对象和数组)
json文本 = "{""姓名"":""张三"",""年龄"":25,""爱好"":[""篮球"",""编程""],""地址"":{""城市"":""北京"","""区"":""海淀区""}}"
' 解析JSON字符串
json对象.解析 (json文本)
' 输出解析后的JSON文本(与输入一致)
信息框 (json对象.取JSON文本 (), 0, "提示")
向JSON对象中添加/修改数据
JSON数据的核心是“键值对”(对象)或“有序列表”(数组)。“类_json”提供了丰富的方法来操作这些数据结构。
添加/修改键值对(对象操作)
使用“置成员 ()”方法可向JSON对象中添加或修改键值对,若键不存在,则添加;若键已存在,则覆盖原值。
语法: 对象.置成员 (键名, 值)
- 键名:文本类型,JSON对象的属性名。
- 值:支持易语言的多种数据类型(文本、整数、小数、布尔值、甚至另一个JSON对象/数组)。
示例代码:
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 json对象, 类_json
json对象.创建 ()
' 添加文本、整数、布尔值类型的键值对
json对象.置成员 ("姓名", "李四")
json对象.置成员 ("年龄", 30)
json对象.置成员 ("是否在职", 真)
' 添加嵌套的JSON对象(地址)
.局部变量 地址对象, 类_json
地址对象.创建 ()
地址对象.置成员 ("城市", "上海")
地址对象.置成员 ("区", "浦东新区")
json对象.置成员 ("地址", 地址对象) ' 将地址对象作为值
' 添加JSON数组(爱好)
.局部变量 爱好数组, 类_json
爱好数组.创建 ()
爱好数组.加入成员 ("阅读")
爱好数组.加入成员 ("旅游")
json对象.置成员 ("爱好", 爱好数组)
' 输出最终JSON文本
信息框 (json对象.取JSON文本 (), 0, "JSON对象内容")
输出结果:
{"姓名":"李四","年龄":30,"是否在职":true,"地址":{"城市":"上海","区":"浦东新区"},"爱好":["阅读","旅游"]}
操作数组(列表)
JSON中的数组用[]表示,可通过“加入成员 ()”向数组末尾添加元素,或通过“取成员 ()”获取指定索引的元素。
语法:
数组.加入成员 (值):向数组末尾添加元素。数组.取成员 (索引):获取数组中指定索引的元素(索引从0开始)。
示例代码(接上文):
' 向“爱好”数组中添加新元素
json对象.取成员 ("爱好").加入成员 ("摄影") ' 注意:取成员返回的是数组对象
' 获取数组第2个元素(索引1)
.局部变量 第二个爱好, 文本
第二个爱好 = json对象.取成员 ("爱好").取成员 (1)
信息框 ("第二个爱好:" + 第二个爱好, 0, "提示")
输出结果:
第二个爱好:旅游
删除成员
使用“删除成员 ()”方法可删除JSON对象中的指定键或数组中的指定索引元素。
语法:
对象.删除成员 (键名):删除对象中的键值对。数组.删除成员 (索引):删除数组中指定索引的元素。
示例代码:
' 删除“是否在职”键
json对象.删除成员 ("是否在职")
' 删除“爱好”数组的第1个元素(索引0)
json对象.取成员 ("爱好").删除成员 (0)
' 输出删除后的JSON文本
信息框 (json对象.取JSON文本 (), 0, "删除后结果")
输出结果:
{"姓名":"李四","年龄":30,"地址":{"城市":"上海","区":"浦东新区"},"爱好":["旅游","摄影"]}
解析JSON字符串并提取数据
当从外部(如API响应、文件读取)获取JSON字符串时,需先通过“解析 ()”将其转换为JSON对象,再通过“取成员 ()”等方法提取数据。
提取简单值(文本、整数等)
直接通过键名提取对应值。
示例代码(基于前文的json文本):
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 json对象, 类_json
.局部变量 json文本, 文本
json文本 = "{""姓名"":""张三"",""年龄"":25,""爱好"":[""篮球"",""编程""],""地址"":{""城市"":""北京"",""区"":""海淀""}}"
json对象.解析 (json文本)
' 提取文本和整数
.局部变量 姓名, 文本
.局部变量 年龄, 整数
姓名 = json对象.取成员 ("姓名")
年龄 = json对象.取成员 ("年龄")
信息框 ("姓名:" + 姓名 + ",年龄:" + 到文本 (年龄), 0, "提取简单值")
提取嵌套对象
若值为JSON对象,需再次通过“取成员 ()”提取其内部数据。
示例代码(接上文):
' 提取嵌套的“地址”对象
.局部变量 地址对象, 类_json
地址对象 = json对象.取成员 ("地址") ' 返回地址对象
.局部变量 城市, 文本
城市 = 地址对象.取成员 ("城市")
信息框 ("城市:" + 城市, 0, "提取嵌套对象")
提取数组
若值为数组,需遍历数组或通过索引获取元素。
示例代码(接上文):
' 提取“爱好”数组并遍历
.局部变量 爱好数组, 类_json
爱好数组 = json对象.取成员 ("爱好")
.局部变量 爱好列表, 文本
爱好列表 = "爱好列表:"
.计次循环首 (爱好数组.取成员数 (), .计次)
.局部变量 当前爱好, 文本
当前爱好 = 爱好数组.取成员 (.计次 - 1) ' 索引从0开始
爱好列表 = 爱好列表 +


还没有评论,来说两句吧...