设备管理 IOTDM(联通用户专用)-Json组件使用说明:1. Json编码

时间:2024-07-03 16:54:08

1. Json编码

使用Json组件进行编码的流程。

创建Json编码对象。

1
HW_JSONOBJ HW_JsonObjCreate()

获取Json对象根节点。

1
HW_JSON HW_JsonGetJson(HW_JSONOBJ hjson)

往Json对象中添加键值对:

添加pcVal为字符串的Json键值对。

1
HW_INT HW_JsonAddStr(HW_JSON pstJson, HW_CHAR *pcKey, HW_CHAR *pcVal)

添加uiVal为整数的Json键值对。

1
HW_INT HW_JsonAddUint(HW_JSON pstJson, HW_CHAR *pcKey, HW_UINT uiVal)

添加bVal为bool的Json键值对。

1
HW_INT HW_JsonAddBool(HW_JSON pstJson, HW_CHAR *pcKey, HW_BOOL bVal)

添加值为Json的Json键值对,获取到的为子Json对象。

1
HW_JSON HW_JsonAddJson(HW_JSON pstJson, HW_CHAR *pcKey)

添加值为Json数组Json键值对,获取到的为子Json数组对象。

1
HW_JSON_ARRAY HW_JsonAddArray(HW_JSON pstJson, HW_CHAR *pcKey)

往Json数组中添加键值对:

添加pcVal为字符串的Json键值对。

1
HW_INT HW_JsonArrayAddStr(HW_JSON_ARRAY *pstArray, HW_CHAR *pcKey, HW_CHAR *pcVal)

添加uiVal为整数的Json键值对。

1
HW_INT HW_JsonArrayAddUint(HW_JSON_ARRAY *pstArray, HW_CHAR *pcKey, HW_UINT uiVal)

添加bVal为bool的Json键值对。

1
HW_INT HW_JsonArrayAddBool(HW_JSON_ARRAY *pstArray, HW_CHAR *pcKey, HW_BOOL bVal)

添加pucValue为Json的Json值,获取到的为子Json对象。

1
HW_JSON HW_JsonArrayAddJson(HW_JSON_ARRAY pstArray)

添加pucValue为Json数组Json键值对,获取到的为子Json数组对象。

1
HW_JSON_ARRAY *HW_JsonArrayAddArray(HW_JSON_ARRAY *pstArray)  *HW_JsonArrayAddArray(HW_JSON_ARRAY *pstArray)

获取Json字符串 。

1
HW_CHAR *HW_JsonEncodeStr(HW_JSONOBJ hJson);

删除Json对象 。

1
HW_VOID HW_JsonObjDelete(HW_JSONOBJ *phJson);

Json编码示例:

待解析Json格式:

{
    "temperature":22,
    "otherInfo":{
        "batteryLevel":"low"
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*变量定义*/ 
HW_JSONOBJ jsonObj; 
HW_JSON rootjson; 
HW_JSON json; 
HW_CHAR *pcJsonStr; 

/*创建Json编码对象*/ 
hJsonObj = HW_JsonObjCreate(); 

/*获取跟节点Json对象*/ 
rootjson = HW_JsonGetJson(hJsonObj); 

/*往根节点中添加键值对*/ 
HW_JsonAddUint(rootjson, "temperature", 22); 

/*从根节点中获取子Json对象*/ 
json = HW_JsonAddJson(rootjson, "otherInfo"); 

/*在子Json中添加键值对*/ 
HW_JsonAddStr(json, " batteryLevel", "low"); 


/*获取Json字符串*/ 
pcJsonStr = HW_JsonEncodeStr(hjsonObj); 

/*删除之前创建的Json编码对象,释放资源*/ 
HW_JsonObjDelete(&hJsonObj);
support.huaweicloud.com/sdkreference-iot/iot_06_1124.html