C
C
JSON Copy Objects
See more JSON Examples
Copy objects from one JSON document to another.Chilkat C Downloads
#include <C_CkJsonObject.h>
void ChilkatSample(void)
{
HCkJsonObject json1;
HCkJsonObject json2;
int i;
int numMembers;
HCkJsonObject jsonObj;
json1 = CkJsonObject_Create();
CkJsonObject_UpdateString(json1,"ID1.cn","Name");
CkJsonObject_UpdateString(json1,"ID1.objectGUID","GUID");
CkJsonObject_UpdateString(json1,"ID2.cn","Name");
CkJsonObject_UpdateString(json1,"ID2.objectGUID","GUID");
CkJsonObject_putEmitCompact(json1,FALSE);
printf("%s\n",CkJsonObject_emit(json1));
// json1 contains:
// {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
json2 = CkJsonObject_Create();
CkJsonObject_UpdateString(json2,"Name1.ID1.cn","Name");
CkJsonObject_UpdateString(json2,"Name1.ID1.objectGUID","GUID");
CkJsonObject_UpdateString(json2,"Name1.ID2.cn","Name");
CkJsonObject_UpdateString(json2,"Name1.ID2.objectGUID","GUID");
CkJsonObject_UpdateString(json2,"Name2.ID3.cn","Name");
CkJsonObject_UpdateString(json2,"Name2.ID3.objectGUID","GUID");
CkJsonObject_putEmitCompact(json2,FALSE);
printf("%s\n",CkJsonObject_emit(json2));
// {
// "Name1": {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// },
// "Name2": {
// "ID3": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
// }
// Copy Name1, Name2 into json1
i = 0;
numMembers = CkJsonObject_getSize(json2);
while (i < numMembers) {
jsonObj = CkJsonObject_ObjectAt(json2,i);
CkJsonObject_AppendObjectCopy(json1,CkJsonObject_nameAt(json2,i),jsonObj);
i = i + 1;
}
// Now see what json1 contains:
printf("%s\n",CkJsonObject_emit(json1));
// {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "Name1": {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// },
// "Name2": {
// "ID3": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
// }
CkJsonObject_Dispose(json1);
CkJsonObject_Dispose(json2);
}