易语言JSON类的使用指南:从入门到实践
在易语言编程中,处理JSON数据是常见需求,尤其是在与Web接口交互、解析配置文件或数据交换场景中,易语言官方提供了“易语言JSON支持库”(或第三方JSON类),支持JSON数据的创建、解析、修改和生成,本文将以易语言内置的JSON支持库为例,详细介绍JSON类的使用方法,帮助开发者快速JSON数据处理技巧。
JSON类简介:核心功能与准备工作
易语言的JSON类主要用于操作“JavaScript对象表示法(JSON)”格式数据,其核心功能包括:
- 创建JSON对象:生成空JSON对象或直接初始化键值对;
- 解析JSON字符串:将JSON格式文本转换为易语言可操作的对象;
- 读写数据:通过键名(或索引)获取/设置JSON中的值(支持字符串、数字、布尔值、数组、嵌套对象等);
- 生成JSON字符串:将JSON对象转换为标准JSON格式文本,便于网络传输或存储。
准备工作
- 引用支持库:在易语言程序中,需通过“程序”→“加入支持库”→“JSON支持库”(或第三方JSON类库,如“易语言JSON类”),确保JSON功能可用。
- 理解JSON结构:JSON数据以键值对(
"key": value)或数组([value1, value2, ...])为基础,支持嵌套(如对象中包含数组或对象),{ "name": "张三", "age": 25, "isStudent": false, "courses": ["语文", "数学"], "address": { "city": "北京", "district": "朝阳区" } }
创建JSON对象:从空对象到初始化数据
创建空JSON对象
使用 创建JSON() 函数可生成一个空的JSON对象,后续通过赋值添加数据:
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 jsonObj, JSON对象
' 创建空JSON对象
jsonObj = 创建JSON ()
' 添加键值对(字符串类型)
jsonObj.置属性 ("name", "李四")
' 添加键值对(数字类型)
jsonObj.置属性 ("age", 30)
' 输出JSON对象(调试用)
调试输出 ("当前JSON对象:" + jsonObj.取JSON文本 ())
.结束子程序
执行后,调试输出结果为:{"name":"李四","age":30}。
直接初始化JSON数据
若需一次性创建包含多个键值对的JSON对象,可通过 JSON对象() 构造函数直接初始化(支持嵌套):
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 jsonObj, JSON对象
' 直接初始化JSON对象(包含嵌套对象和数组)
jsonObj = JSON对象 (
"name", "王五",
"age", 28,
"hobbies", JSON数组 ("编程", "阅读", "运动"),
"contact", JSON对象 (
"email", "wangwu@example.com",
"phone", "13800138000"
)
)
' 输出JSON文本
调试输出 ("完整JSON:" + jsonObj.取JSON文本 ())
.结束子程序
输出结果为:
{
"name":"王五",
"age":28,
"hobbies":["编程","阅读","运动"],
"contact":{"email":"wangwu@example.com","phone":"13800138000"}
}
解析JSON字符串:从文本到对象
当需要处理从网络或文件读取的JSON文本时,需先通过 解析JSON() 函数将其转换为JSON对象,再进行数据提取。
示例:解析JSON字符串并提取数据
假设有以下JSON字符串:
{"status":200,"message":"success","data":{"list":[{"id":1,"name":"商品A"},{"id":2,"name":"商品B"}]}}
解析步骤如下:
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 jsonText, 文本型
.局部变量 jsonObj, JSON对象
.局部变量 dataList, JSON数组
.局部变量 item, JSON对象
.局部变量 i, 整数型
' 待解析的JSON字符串
jsonText = "{\"status\":200,\"message\":\"success\",\"data\":{\"list\":[{\"id\":1,\"name\":\"商品A\"},{\"id\":2,\"\"name\":\"商品B\"}]}}"
' 解析JSON字符串
jsonObj = 解析JSON (jsonText)
' 提取顶层字段(status和message)
调试输出 ("状态码:" + jsonObj.取属性 ("status"))
调试输出 ("消息:" + jsonObj.取属性 ("message"))
' 提取嵌套对象(data.list)
.(jsonObj.是否存在 ("data"))
.局部变量 dataObj, JSON对象
dataObj = jsonObj.取属性 ("data")
.(dataObj.是否存在 ("list"))
dataList = dataObj.取属性 ("list") ' 获取数组
' 遍历数组
.计次循环首 (dataObj.取属性 ("list").取长度 (), i)
item = dataList.取属性 (i)
调试输出 ("商品ID:" + item.取属性 ("id") + ",名称:" + item.取属性 ("name"))
.计次循环尾 ()
.否则
调试输出 ("data对象中不存在list字段")
.如果结束
.否则
调试输出 ("JSON对象中不存在data字段")
.如果结束
.结束子程序
输出结果为:
状态码:200
消息:success
商品ID:1,名称:商品A
商品ID:2,名称:商品B
修改JSON数据:动态更新键值对与嵌套结构
JSON对象支持动态修改,可通过 置属性() 更新已有键值对,或添加新键值对;若需删除数据,可使用 删除属性()(部分JSON类支持)。
示例:修改JSON数据
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 jsonObj, JSON对象
' 初始化JSON对象
jsonObj = JSON对象 (
"name", "赵六",
"age", 35,
"skills", JSON数组 ("Java", "Python")
)
' 1. 修改已有字段(age改为36)
jsonObj.置属性 ("age", 36)
' 2. 添加新字段(gender)
jsonObj.置属性 ("gender", "男")
' 3. 向数组添加元素(skills添加"Go")
.局部变量 skillsArray, JSON数组
skillsArray = jsonObj.取属性 ("skills")
skillsArray.添加 ("Go")
' 4. 删除字段(假设删除skills)
' jsonObj.删除属性 ("skills") ' 若JSON类支持删除功能
' 输出修改后的JSON
调试输出 ("修改后JSON:" + jsonObj.取JSON文本 ())
.结束子程序
输出结果为:
{"name":"赵六","age":36,"skills":["Java","Python","Go"],"gender":"男"}
生成JSON字符串:从对象到文本
当需要将JSON对象转换为文本(如发送HTTP请求或保存到文件)时,使用 取JSON文本() 方法即可,该方法会自动处理格式,确保输出符合JSON标准。
示例:生成JSON字符串并保存到文件
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 jsonObj, JSON对象
.局部变量 jsonText, 文本型
.局部变量 文件句柄, 整数型
' 创建JSON对象
jsonObj = JSON对象 (
"user", JSON对象 (
"id", 1001,
"username", "admin",
"permissions", JSON数组 ("read", "write", "delete")
),
"timestamp", #now
"is_active", 真
)
' 生成JSON文本
jsonText = jsonObj.取JSON文本 ()
' 保存到文件(UTF-8编码)
文件句柄 = 文件_写打开 ("C:\data.json", #写, , ,


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