易语言中如何处理多个JSON数组
在易语言中,处理JSON数据是开发网络应用或解析接口响应的常见需求,当需要在一个JSON结构中包含多个数组时,核心思路是通过嵌套结构(如对象嵌套数组、数组嵌套对象)或并列数组(同一层级下的多个数组字段)来实现,本文将结合易语言的“易JSON”(常用第三方库,如易JSON支持库或超级列表框JSON扩展)讲解具体实现方法。
易语言JSON基础回顾
易语言本身不内置原生JSON支持,通常依赖第三方库(如易JSON、易语言JSON解析库等),以易JSON为例,其核心操作包括:
- 创建JSON对象:
创建JSON对象() - 创建JSON数组:
创建JSON数组() - 添加数据到对象:
置对象属性() - 添加数据到数组:
加入数组() - 转换为字符串:
JSON转文本() - 从文本解析:
文本转JSON()
多个数组的常见场景与实现
场景1:同一对象下包含多个并列数组
需求:如一个用户信息JSON,包含“用户名数组”“年龄数组”“爱好数组”,均在根对象下并列存在。
实现步骤:
- 创建根JSON对象;
- 分别创建多个数组对象;
- 向各数组添加元素;
- 将数组作为属性添加到根对象;
- 转换为JSON文本。
示例代码:
.版本 2
.程序集 窗口程序_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 根对象, 对象
.局部变量 用户名数组, 数组
.局部变量 年龄数组, 数组
.局部变量 爱好数组, 数组
' 1. 创建根对象
根对象 = 创建JSON对象()
' 2. 创建用户名数组并添加元素
用户名数组 = 创建JSON数组()
加入数组 (用户名数组, "张三")
加入数组 (用户名数组, "李四")
加入数组 (用户名数组, "王五")
' 3. 创建年龄数组并添加元素
年龄数组 = 创建JSON数组()
加入数组 (年龄数组, 25)
加入数组 (年龄数组, 30)
加入数组 (年龄数组, 28)
' 4. 创建爱好数组并添加元素
爱好数组 = 创建JSON数组()
加入数组 (爱好数组, "篮球")
加入数组 (爱好数组, "阅读")
加入数组 (爱好数组, "编程")
' 5. 将数组作为属性添加到根对象
置对象属性 (根对象, "用户名", 用户名数组)
置对象属性 (根对象, "年龄", 年龄数组)
置对象属性 (根对象, "爱好", 爱好数组)
' 6. 输出JSON文本
信息框 (JSON转文本 (根对象, 真), 0, "JSON结果", )
生成的JSON文本:
{
"用户名": ["张三", "李四", "王五"],
"年龄": [25, 30, 28],
"爱好": ["篮球", "阅读", "编程"]
}
场景2:数组嵌套数组(二维数组结构)
需求:如一个“班级学生成绩”JSON,每个学生包含“科目数组”和“分数数组”,整体是一个学生数组,每个学生对象内嵌套两个数组。
实现步骤:
- 创建根JSON数组(存储所有学生);
- 循环创建每个学生的对象;
- 为每个学生对象创建“科目数组”和“分数数组”并填充数据;
- 将学生对象加入根数组;
- 转换为JSON文本。
示例代码:
.版本 2
.程序集 窗口程序_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 学生数组, 数组
.局部变量 学生1, 对象
.局部变量 学生2, 对象
.局部变量 科目数组, 数组
.局部变量 分数数组, 数组
' 1. 创建根学生数组
学生数组 = 创建JSON数组()
' ========== 处理第一个学生 ==========
' 创建学生对象
学生1 = 创建JSON对象()
' 添加科目数组
科目数组 = 创建JSON数组()
加入数组 (科目数组, "数学")
加入数组 (科目数组, "语文")
加入数组 (科目数组, "英语")
置对象属性 (学生1, "科目", 科目数组)
' 添加分数数组
分数数组 = 创建JSON数组()
加入数组 (分数数组, 90)
加入数组 (分数数组, 85)
加入数组 (分数数组, 88)
置对象属性 (学生1, "分数", 分数数组)
' 将学生1加入根数组
加入数组 (学生数组, 学生1)
' ========== 处理第二个学生 ==========
学生2 = 创建JSON对象()
科目数组 = 创建JSON数组()
加入数组 (科目数组, "物理")
加入数组 (科目数组, "化学")
置对象属性 (学生2, "科目", 科目数组)
分数数组 = 创建JSON数组()
加入数组 (分数数组, 92)
加入数组 (分数数组, 87)
置对象属性 (学生2, "分数", 分数数组)
加入数组 (学生数组, 学生2)
' 输出JSON文本
信息框 (JSON转文本 (学生数组, 真), 0, "嵌套数组JSON", )
生成的JSON文本:
[
{
"科目": ["数学", "语文", "英语"],
"分数": [90, 85, 88]
},
{
"科目": ["物理", "化学"],
"分数": [92, 87]
}
]
场景3:对象嵌套数组,数组内再嵌套对象
需求:如一个“商品分类”JSON,每个分类包含“分类名”和“商品列表”(数组,每个商品是一个对象)。
实现步骤:
- 创建根JSON数组(存储所有分类);
- 为每个分类创建对象,包含“分类名”和“商品数组”;
- 商品数组内嵌套商品对象(含商品名、价格等);
- 转换为JSON文本。
示例代码(片段):
.局部变量 分类数组, 数组
.局部变量 电子产品分类, 对象
.局部变量 商品数组, 数组
.局部变量 手机, 对象
分类数组 = 创建JSON数组()
' 创建电子产品分类
电子产品分类 = 创建JSON对象()
置对象属性 (电子产品分类, "分类名", "电子产品")
' 创建商品数组
商品数组 = 创建JSON数组()
' 添加手机商品
手机 = 创建JSON对象()
置对象属性 (手机, "商品名", "iPhone 15")
置对象属性 (手机, "价格", 5999)
加入数组 (商品数组, 手机)
' 添加电脑商品
.局部变量 电脑, 对象
电脑 = 创建JSON对象()
置对象属性 (电脑, "商品名", "MacBook Pro")
置对象属性 (电脑, "价格", 12999)
加入数组 (商品数组, 电脑)
' 将商品数组加入分类
置对象属性 (电子产品分类, "商品列表", 商品数组)
' 将分类加入根数组
加入数组 (分类数组, 电子产品分类)
信息框 (JSON转文本 (分类数组, 真), 0, "嵌套对象数组", )
生成的JSON文本:
[
{
"分类名": "电子产品",
"商品列表": [
{
"商品名": "iPhone 15",
"价格": 5999
},
{
"商品名": "MacBook Pro",
"价格": 12999
}
]
}
]
注意事项
- 库的选择:确保使用支持嵌套结构的JSON库,部分旧版库可能不支持复杂嵌套,建议使用
易JSON或易语言JSON解析库V2.0等成熟工具。 - 数据类型一致:数组内元素建议保持同类型(如全为文本或全为数字),避免部分解析器因类型混乱报错。
- 格式化输出:使用
JSON转文本(JSON对象, 是否格式化)时,设置第二个参数为真
抖音足球直播
抖音足球直播
企鹅直播
企鹅直播
足球直播
爱奇艺直播
爱奇艺足球直播
足球直播
足球直播
iqiyi直播
足球直播
足球直播
QQ足球直播
QQ足球直播
足球直播
足球直播
QQ足球直播
QQ足球直播
足球直播
足球直播
快连
快连
快连
快连下载
快连
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
新浪足球直播
新浪足球直播
足球直播
足球直播
有道翻译
有道翻译
有道翻译
有道翻译
wps
wps
wps
wps
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
新浪足球直播
新浪足球直播
足球直播
足球直播



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