LVGL 8.3 JOSN数据为{"type":5000006,"data":{"progress":100,"finished":true,"temperatures":null}},用什么函数获取progress键的值
时间: 2024-12-07 17:13:41 浏览: 9
LVGL (LightVG Library) 是一个用于图形渲染的开源库,主要用于嵌入式设备的GUI开发。当你遇到一个JSON数据结构如`{"type":5000006,"data":{"progress":100,"finished":true,"temperatures":null}}`,想要获取其中"progress"键对应的值,通常你需要解析JSON数据。在LVGL中,这并不是直接操作的数据结构,因为LVGL的核心功能并不包括处理JSON。
然而,在许多编程语言中,比如Python(可以使用json模块),JavaScript(可以用JSON.parse()),或者C++(需要第三方库如nlohmann/json)中,你可以通过以下步骤来获取这个值:
```python
import json
# JSON字符串
json_str = '{"type":5000006,"data":{"progress":100,"finished":true,"temperatures":null}}'
# 解析JSON
data = json.loads(json_str)
# 获取progress的值
progress_value = data['data']['progress']
```
对于LVGL应用本身,如果你的应用需要处理外部数据,并将该信息转换成LVGL可理解的形式(例如,显示进度百分比),那么你可能会编写一个自定义函数来完成这种转换。
请注意,实际的LVGL API并没有提供直接处理JSON的函数,所以这部分工作通常会在你的应用程序代码中完成。
相关问题
josn::Value
以下是关于Json::Value的介绍:
Json::Value是JsonCpp库中用来表示Json中的任何一种value抽象数据类型。它是JsonCpp库中最核心的类之一,可以用来表示JSON中的各种数据类型,包括对象、数组、字符串、数字等。Json::Value类提供了一系列方法来操作JSON数据,比如获取数据类型、获取数据值、设置数据值等。
如何将多个josn合并的信息拆分成独立的josn 例如{"Sender":1,"Type":1,"DataJson":"{\"Key\":2116235005,\"ArithmeticResult\":-3,\"IsJudgeAgain\":false,\"CheckUsedSeconds\":0.0,\"ImageData\":null,\"Area\":3,\"WarnNum\":0,\"CheckTime\":\"2023-06-09T09:45:46.7957432+08:00\",\"FlawList\":[],\"IsHalconOK\":0,\"IsColorAIOK\":0,\"IsWhileOK\":0,\"AppType\":1,\"ImagePath\":\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00031_0.jpg\",\"ID\":\"3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\",\"CameraSN\":\"CB02678AAK00031\",\"Index\":0,\"SrcImage\":null,\"Pid\":null,\"IsEnd\":false}"}{"Sender":1,"Type":1,"DataJson":"{\"Key\":1548132793,\"ArithmeticResult\":-1,\"IsJudgeAgain\":false,\"CheckUsedSeconds\":0.09,\"ImageData\":null,\"Area\":0,\"WarnNum\":1,\"CheckTime\":\"2023-06-09T09:45:46.7538551+08:00\",\"FlawList\":[{\"ParentID\":1548132793,\"CheckTime\":\"2023-06-09T09:45:46.9583098+08:00\",\"ImageNo\":\"\",\"X\":10.0,\"Y\":10.0,\"Width\":10.0,\"Height\":10.0,\"Configidence\":0.0,\"MeasureValue\":0.0,\"ElementType\":\"亮点3\",\"ArithmeticResult\":-1,\"JudgeAgain\":2,\"Result\":-1,\"ImagePath\":\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00009_0.jpg\",\"Key\":-1725364068,\"Order\":0,\"IsSelected\":false,\"ChangedEnabled\":false,\"Errors\":[],\"Error\":\"\",\"IsInDesignMode\":false}],\"IsHalconOK\":0,\"IsColorAIOK\":0,\"IsWhileOK\":0,\"AppType\":1,\"ImagePath\":\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00009_0.jpg\",\"ID\":\"3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\",\"CameraSN\":\"CB02678AAK00009\",\"Index\":0,\"SrcImage\":null,\"Pid\":null,\"IsEnd\":false}"}
这段多个json合并的信息并不是合法的json格式,因此需要先将其转化为合法的json格式,例如将其放入一个数组中,每个json之间用逗号隔开,再用中括号包裹起来,形成一个json数组。假设已经将其转化为如下格式:
```json
[
{"Sender":1,"Type":1,"DataJson":"{\"Key\":2116235005,\"ArithmeticResult\":-3,\"IsJudgeAgain\":false,\"CheckUsedSeconds\":0.0,\"ImageData\":null,\"Area\":3,\"WarnNum\":0,\"CheckTime\":\"2023-06-09T09:45:46.7957432+08:00\",\"FlawList\":[],\"IsHalconOK\":0,\"IsColorAIOK\":0,\"IsWhileOK\":0,\"AppType\":1,\"ImagePath\":\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00031_0.jpg\",\"ID\":\"3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\",\"CameraSN\":\"CB02678AAK00031\",\"Index\":0,\"SrcImage\":null,\"Pid\":null,\"IsEnd\":false}"},
{"Sender":1,"Type":1,"DataJson":"{\"Key\":1548132793,\"ArithmeticResult\":-1,\"IsJudgeAgain\":false,\"CheckUsedSeconds\":0.09,\"ImageData\":null,\"Area\":0,\"WarnNum\":1,\"CheckTime\":\"2023-06-09T09:45:46.7538551+08:00\",\"FlawList\":[{\"ParentID\":1548132793,\"CheckTime\":\"2023-06-09T09:45:46.9583098+08:00\",\"ImageNo\":\"\",\"X\":10.0,\"Y\":10.0,\"Width\":10.0,\"Height\":10.0,\"Configidence\":0.0,\"MeasureValue\":0.0,\"ElementType\":\"亮点3\",\"ArithmeticResult\":-1,\"JudgeAgain\":2,\"Result\":-1,\"ImagePath\":\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00009_0.jpg\",\"Key\":-1725364068,\"Order\":0,\"IsSelected\":false,\"ChangedEnabled\":false,\"Errors\":[],\"Error\":\"\",\"IsInDesignMode\":false}],\"IsHalconOK\":0,\"IsColorAIOK\":0,\"IsWhileOK\":0,\"AppType\":1,\"ImagePath\":\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00009_0.jpg\",\"ID\":\"3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\",\"CameraSN\":\"CB02678AAK00009\",\"Index\":0,\"SrcImage\":null,\"Pid\":null,\"IsEnd\":false}"}
]
```
可以使用Json库(例如Jackson)将这个json数组解析成一个Java数组,然后遍历Java数组,获取每个独立的json字符串,再将其解析成JsonObject即可。以下是示例代码:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.JSONObject;
String input = "[{\"Sender\":1,\"Type\":1,\"DataJson\":\"{\\\"Key\\\":2116235005,\\\"ArithmeticResult\\\":-3,\\\"IsJudgeAgain\\\":false,\\\"CheckUsedSeconds\\\":0.0,\\\"ImageData\\\":null,\\\"Area\\\":3,\\\"WarnNum\\\":0,\\\"CheckTime\\\":\\\"2023-06-09T09:45:46.7957432+08:00\\\",\\\"FlawList\\\":[],\\\"IsHalconOK\\\":0,\\\"IsColorAIOK\\\":0,\\\"IsWhileOK\\\":0,\\\"AppType\\\":1,\\\"ImagePath\\\":\\\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00031_0.jpg\\\",\\\"ID\\\":\\\"3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\",\\\"CameraSN\\\":\\\"CB02678AAK00031\\\",\\\"Index\\\":0,\\\"SrcImage\\\":null,\\\"Pid\\\":null,\\\"IsEnd\\\":false}\"},{\"Sender\":1,\"Type\":1,\"DataJson\":\"{\\\"Key\\\":1548132793,\\\"ArithmeticResult\\\":-1,\\\"IsJudgeAgain\\\":false,\\\"CheckUsedSeconds\\\":0.09,\\\"ImageData\\\":null,\\\"Area\\\":0,\\\"WarnNum\\\":1,\\\"CheckTime\\\":\\\"2023-06-09T09:45:46.7538551+08:00\\\",\\\"FlawList\\\":[{\\\"ParentID\\\":1548132793,\\\"CheckTime\\\":\\\"2023-06-09T09:45:46.9583098+08:00\\\",\\\"ImageNo\\\":\\\"\\\",\\\"X\\\":10.0,\\\"Y\\\":10.0,\\\"Width\\\":10.0,\\\"Height\\\":10.0,\\\"Configidence\\\":0.0,\\\"MeasureValue\\\":0.0,\\\"ElementType\\\":\\\"亮点3\\\",\\\"ArithmeticResult\\\":-1,\\\"JudgeAgain\\\":2,\\\"Result\\\":-1,\\\"ImagePath\\\":\\\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00009_0.jpg\\\",\\\"Key\\\":-1725364068,\\\"Order\\\":0,\\\"IsSelected\\\":false,\\\"ChangedEnabled\\\":false,\\\"Errors\\\":[],\\\"Error\\\":\\\"\\\",\\\"IsInDesignMode\\\":false}],\\\"IsHalconOK\\\":0,\\\"IsColorAIOK\\\":0,\\\"IsWhileOK\\\":0,\\\"AppType\\\":1,\\\"ImagePath\\\":\\\"\\\\\\\\SZL-20230222ORR\\\\HMJImages\\\\2023\\\\06\\\\09\\\\09\\\\3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\\SrcImages\\\\230609094546525_CB02678AAK00009_0.jpg\\\",\\\"ID\\\":\\\"3TE55G23064401AC9510513;_Test_Test_Test-202306090947178\\\",\\\"CameraSN\\\":\\\"CB02678AAK00009\\\",\\\"Index\\\":0,\\\"SrcImage\\\":null,\\\"Pid\\\":null,\\\"IsEnd\\\":false}\"}]";
ObjectMapper mapper = new ObjectMapper();
JSONObject[] jsonObjects = mapper.readValue(input, JSONObject[].class);
for (JSONObject jsonObject : jsonObjects) {
System.out.println(jsonObject.toString());
}
```
上述代码中,使用Jackson将json数组解析成一个JSONObject数组,然后遍历这个数组,获取每个独立的json字符串,再将其解析成JsonObject,最终可以对每个独立的JsonObject进行操作。
阅读全文