易语言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", #写, , ,



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