两个组源数据
源数据A
{
"aaaa": "AAAA"
}
源数据B
{
"bbbb": "BBBB",
"cccc": "CCCC",
"dddd": "DDDD",
"userList": [{
"abc": "0"
}, {
"abc": "1"
}, {
"abc": "2"
}, {
"abc": "3"
}, {
"abc": "4"
}]
}
拼接结果
{
"aaaa": "AAAA",
"bbbb": "BBBB",
"cccc": "CCCC",
"dddd": "DDDD",
"userList": [{
"abc": "0"
}, {
"abc": "1"
}, {
"abc": "2"
}, {
"abc": "3"
}, {
"abc": "4"
}]
}
代码实现
void main()
{
char jsonDataA[] = "{\"aaaa\":\"AAAA\"}";
char jsonDataB[] = "{\"bbbb\":\"BBBB\",\"cccc\":\"CCCC\",\"dddd\":\"DDDD\",\"userList\":[{\"abc\":\"0\"}, {\"abc\":\"1\"}, {\"abc\":\"2\"}, {\"abc\":\"3\"}, {\"abc\":\"4\"}]}";
cJSON *cjsonA = cJSON_Parse(jsonDataA);
cJSON *cjsonB = cJSON_Parse(jsonDataB);
char *cjsonPrint = NULL;
cjsonPrint = cJSON_Print(cjsonA);
printf("cjsonA:%s\r\n", cjsonPrint);
cJSON_free(cjsonPrint);
cjsonPrint = cJSON_Print(cjsonB);
printf("cjsonB:%s\r\n", cjsonPrint);
cJSON_free(cjsonPrint);
for (int i = 0; i < cJSON_GetArraySize(cjsonB); i++)
{
cJSON *tmp_json = cJSON_GetArrayItem(cjsonB, i);
char *p = cJSON_Print(tmp_json);
cJSON_AddRawToObject(cjsonA, tmp_json->string, p);
cJSON_free(p);
}
cjsonPrint = cJSON_Print(cjsonA);
printf("cjsonA:%s\r\n", cjsonPrint);
cJSON_free(cjsonPrint);
cJSON_Delete(cjsonA);
cJSON_Delete(cjsonB);
}
输出结果
cjsonA:{
"aaaa": "AAAA"
}
cjsonB:{
"bbbb": "BBBB",
"cccc": "CCCC",
"dddd": "DDDD",
"userList": [{
"abc": "0"
}, {
"abc": "1"
}, {
"abc": "2"
}, {
"abc": "3"
}, {
"abc": "4"
}]
}
cjsonA:{
"aaaa": "AAAA",
"bbbb": "BBBB",
"cccc": "CCCC",
"dddd": "DDDD",
"userList": [{
"abc": "0"
}, {
"abc": "1"
}, {
"abc": "2"
}, {
"abc": "3"
}, {
"abc": "4"
}]
}