易语言如何遍历JSON:从入门到实践
在数据处理日益重要的今天,JSON(JavaScript Object Notation)因其轻量、易读的特性,已成为跨平台数据交换的主流格式之一,易语言作为国产可视化编程语言,虽然原生对JSON的支持不如Python、Java等语言完善,但通过调用第三方库或利用内置功能,同样可以实现JSON的高效遍历,本文将详细介绍易语言遍历JSON的多种方法,从基础概念到实战代码,帮助开发者快速这一技能。
JSON基础与易语言环境准备
1 JSON数据结构简介
JSON是一种键值对(Key-Value)结构的数据格式,主要包含两种类型:
- 对象(Object):用 表示,由无序的键值对组成,键需用双引号包裹,值可以是字符串、数字、布尔值、数组、对象或null,如
{"name":"张三","age":30,"isStudent":false}。 - 数组(Array):用
[]表示,由有序的值列表组成,值类型与对象中的值类型一致,如[{"name":"李四"},{"name":"王五"}]。
遍历JSON的核心就是逐层访问对象中的键、数组中的元素,以及对应的值。
2 易语言JSON处理环境准备
易语言本身未内置JSON解析模块,需借助第三方库或Windows系统组件,以下是两种常用方案:
- 使用易语言JSON库(如“易语言JSON支持库”):第三方开发者封装的库,提供解析、遍历、生成等完整功能,适合新手快速上手。
- 调用Windows脚本宿主(WSH)的JSON解析能力:通过易语言的“运行”命令调用JavaScript的
JSON.parse()方法,无需额外安装库,但需处理跨语言调用细节。
本文以易语言JSON支持库为例(假设已导入支持库,库名为json_lib),结合代码示例讲解遍历方法。
易语言遍历JSON的实战方法
1 解析JSON字符串为易语言对象
遍历JSON前,需先将JSON字符串解析为易语言可识别的对象,以json_lib为例,通常提供JSON解析()函数,输入JSON字符串,返回一个“对象”类型的变量(本质是易语言的“映射表”或“动态数组”)。
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 json_str, 文本型
.局部变量 json_obj, 对象型
' 示例JSON字符串(包含对象和嵌套数组)
json_str = "{""name"":""张三"",""age"":30,""hobbies"":[""读书"",""跑步""],""address"":{""city"":""北京"",""district"":""朝阳区""}}"
' 解析JSON字符串为易语言对象
json_obj = json_lib.解析(json_str)
' 判断解析是否成功
(json_obj ≠ 空)
信息框 ("JSON解析成功!", 0, , )
否则
信息框 ("JSON解析失败!", 0, , )
返回 ()
结束如果
2 遍历JSON对象(键值对)
JSON对象的遍历核心是逐个获取键,再通过键取值。json_lib解析后的对象通常支持取键()、取值()等方法。
示例:遍历顶层键值对
.子程序 遍历对象, , 公开
.参数 json_obj, 对象型 ' 解析后的JSON对象
' 遍历对象的所有键
.计次循环首 (json_obj.取键数 (), i)
.局部变量 key, 文本型
.局部变量 value, variant型 ' 值可能是字符串、数字、对象等
key = json_obj.取键 (i)
value = json_obj.取值 (key)
' 根据值类型输出结果
判断 (value的类型 () = "对象型")
输出调试文本 (key + " => [对象]" + #换行符)
判断 (value的类型 () = "数组型")
输出调试文本 (key + " => [数组]" + #换行符)
判断 (value的类型 () = "文本型")
输出调试文本 (key + " => " + value + #换行符)
判断 (value的类型 () = "整数型")
输出调试文本 (key + " => " + 到文本 (value) + #换行符)
判断 (value的类型 () = "逻辑型")
输出调试文本 (key + " => " + ((value, "真", "假")) + #换行符)
默认
输出调试文本 (key + " => [未知类型]" + #换行符)
结束判断
.计次循环尾 ()
' 调用示例
' 遍历对象 (json_obj)
输出结果:
name => [文本型]张三
age => [整数型]30
hobbies => [数组型]
address => [对象型]
3 遍历JSON数组(有序列表)
JSON数组的遍历与易语言“动态数组”类似,可通过取数组成员数()获取长度,再用取数组项()逐个访问元素。
示例:遍历数组元素
.子程序 遍历数组, , 公开
.参数 json_array, 对象型 ' JSON数组对应的易语言对象
' 判断是否为数组
(json_array.类型 () ≠ "数组型")
信息框 ("参数不是JSON数组!", 0, , )
返回 ()
结束如果
.计次循环首 (json_array.取数组成员数 (), i)
.局部变量 item, variant型 ' 数组元素可能是任意类型
item = json_array.取数组项 (i)
' 根据元素类型输出
判断 (item的类型 () = "文本型")
输出调试文本 ("数组项[" + 到文本 (i) + "] => " + item + #换行符)
判断 (item的类型 () = "对象型")
输出调试文本 ("数组项[" + 到文本 (i) + "] => [对象]" + #换行符)
' 若需进一步遍历对象,可调用遍历对象子程序
' 遍历对象 (item)
结束判断
.计次循环尾 ()
' 调用示例:遍历"hobbies"数组
.局部变量 hobbies, 对象型
hobbies = json_obj.取值 ("hobbies")
遍历数组 (hobbies)
输出结果:
数组项[1] => 读书
数组项[2] => 跑步
4 遍历嵌套JSON(对象与数组组合)
实际JSON数据常包含嵌套结构(如对象中嵌套数组,或数组中嵌套对象),遍历嵌套JSON的核心是递归或循环调用遍历逻辑,逐层处理子对象或子数组。
示例:遍历嵌套JSON(含对象嵌套数组、数组嵌套对象)
.子程序 遍历嵌套JSON, , 公开
.参数 data, variant型 ' 当前待遍历的数据(可能是对象、数组或基本类型)
' 根据数据类型选择遍历方式
判断 (data的类型 () = "对象型")
输出调试文本 ("[遍历对象]" + #换行符)
.计次循环首 (data.取键数 (), i)
.局部变量 key, 文本型
.局部变量 value, variant型
key = data.取键 (i)
value = data.取值 (key)
输出调试文本 (" 键: " + key + ", 值类型: " + value的类型 ())
' 递归遍历子值
遍历嵌套JSON (value)
.计次循环尾 ()
判断 (data的类型 () = "数组型")
输出调试文本 ("[遍历数组]" + #换行符)
.计次循环首 (data.取数组成员数 (), i)
.局部变量 item, variant型
item = data.取数组项 (i)
输出调试文本 (" 元素[" + 到文本 (i) + "], 类型: " + item的类型 ())
' 递归遍历子元素
遍历嵌套JSON (item)
.计次循环尾 ()
默认
' 基本类型(字符串、数字等),直接输出值
输出调试文本 (" 基本值: " + 到


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