设置JSON对象中的值 - JsonSetValue
函数简介
设置JSON对象中指定键的值,支持设置任意类型的JSON值。
接口名称
JsonSetValue
DLL调用
int JsonSetValue(long obj, string key, long value)
参数说明
参数名 | 类型 | 说明 |
---|---|---|
obj | 长整数型 | JSON对象句柄 |
key | 字符串 | 键名 |
value | 长整数型 | 要设置的值句柄 |
示例
// 设置JSON对象中的值
long jsonObj = JsonCreateObject();
// 创建子对象
long subObj = JsonCreateObject();
JsonSetString(subObj, "name", "test");
JsonSetNumber(subObj, "age", 25);
// 将子对象设置到主对象中
int result = JsonSetValue(jsonObj, "user", subObj);
if (result == 0) {
printf("设置成功\n");
}
// 注意:subObj的所有权转移给jsonObj,不需要单独释放
JsonFree(jsonObj); // 释放主对象(会同时释放子对象)
返回值
返回操作结果错误码,0表示成功
错误码说明
错误码 | 说明 |
---|---|
JSON_SUCCESS (0) | 操作成功 |
JSON_ERROR_INVALID_HANDLE (1) | 无效的句柄 |
JSON_ERROR_PARSE_FAILED (2) | JSON解析失败 |
JSON_ERROR_TYPE_MISMATCH (3) | 类型不匹配 |
JSON_ERROR_KEY_NOT_FOUND (4) | 键不存在 |
JSON_ERROR_INDEX_OUT_OF_RANGE (5) | 索引超出范围 |
JSON_ERROR_UNKNOWN (6) | 未知错误 |
注意事项
- 设置成功后,value句柄的所有权转移给obj,不需要单独释放
- 如果key已存在,会覆盖原有值
- 支持设置对象、数组、字符串、数字等任意JSON类型