App Inventor 2 如何拼接 JSON 文本?用字典积木轻松搞定
App Inventor 2 中拼接 JSON 文本的最简方法是利用字典(Dictionary)积木。字典天生就是 JSON 的一种表现形式,打印出来就是标准 JSON 格式文本,无需手动拼接字符串。
为什么用字典而不是拼接字符串?
很多初学者会想到用join(拼接)积木把字符串一段段拼成 JSON 格式,比如:
{"temperature": 25, "humidity": 60}手动拼接不仅容易出错(漏逗号、漏引号、括号不匹配),而且当数据字段增多时维护成本很高。
字典的天然优势:App Inventor 2 的字典本质上就是键值对(key-value pairs),与 JSON 的对象结构完全一致。将字典转换为文本时,自动输出标准 JSON 格式。
如何用字典积木创建 JSON?
Step 1: 找到"创建字典"积木
在积木面板中,进入字典分类,找到创建字典积木(make a dictionary)。默认只有2 个插槽(2 组键值对),但它是可拓展块。
Step 2: 拓展插槽数量
点击积木左上角的蓝色小齿轮⚙️,弹出拓展面板。将左侧的key和value块拖入右侧,增加更多键值对插槽。
Step 3: 填入键值对数据
在每个插槽中填入你的键(key)和值(value)。例如:
- key:
"temperature"→ value:25 - key:
"humidity"→ value:60 - key:
"device"→ value:"sensor_01"
Step 4: 转换为 JSON 文本
将字典积木连接到转换为文本积木,即可输出 JSON 文本。
生成的 JSON 是什么样的?
最终输出的 JSON 文本如下:
{"temperature":25,"humidity":60,"device":"sensor_01"}字典嵌套怎么做?
如果 JSON 需要嵌套结构(对象里有对象),可以在字典的 value 位置再放一个"创建字典"积木。App Inventor 2 支持多层嵌套。
JSON 数组怎么处理?
JSON 中的数组可以用创建列表(make a list)积木。列表会自动转换为 JSON 数组格式[...]。
怎么通过 MQTT 发送 JSON?
将字典转换为文本后,直接调用 MQTT 客户端的Publish方法发送即可。示例流程:
- 创建字典 → 填入传感器数据
- 字典转文本 → 得到 JSON 字符串
- 调用 MQTT.Publish(topic, jsonText) → 发送到 MQTT Broker
Web 组件和字典拼接 JSON 有什么区别?
Web 组件的PostText方法可以自动将字典转为 JSON。但在 MQTT、蓝牙通信等场景需要手动转换。
三种 JSON 拼接方法对比
| 方法 | 优点 | 缺点 |
|---|---|---|
| 字典积木(推荐) | 自动格式化、不易出错、支持嵌套 | 需要了解字典积木用法 |
| 字符串拼接 | 直观简单 | 容易出错、难维护 |
| Web 组件自动转换 | 最省事 | 仅限 HTTP 请求场景 |
最佳实践:始终使用字典积木构造 JSON,比手动拼接字符串更安全、更高效。
更多 App Inventor 2 教程和资源,请访问 App Inventor 2 中文网。
