C
C
JSON: Nested Objects
See more JSON Examples
Here we have a JSON object that contains nested JSON objects. This example demonstrates how to access the contents of the nested objects.
{
"name": "donut",
"image":
{
"fname": "donut.jpg",
"w": 200,
"h": 200
},
"thumbnail":
{
"fname": "donutThumb.jpg",
"w": 32,
"h": 32
}
}
Chilkat C Downloads
#include <C_CkJsonObject.h>
void ChilkatSample(void)
{
BOOL success;
HCkJsonObject json;
const char *jsonStr;
HCkJsonObject imageObj;
HCkJsonObject thumbObj;
success = FALSE;
json = CkJsonObject_Create();
// This is the above JSON with whitespace chars removed (SPACE, TAB, CR, and LF chars).
// The presence of whitespace chars for pretty-printing makes no difference to the Load
// method.
jsonStr = "{\"name\": \"donut\",\"image\":{\"fname\": \"donut.jpg\",\"w\": 200,\"h\": 200},\"thumbnail\":{\"fname\": \"donutThumb.jpg\",\"w\": 32,\"h\": 32}}";
success = CkJsonObject_Load(json,jsonStr);
if (success == FALSE) {
printf("%s\n",CkJsonObject_lastErrorText(json));
CkJsonObject_Dispose(json);
return;
}
// Get the "image" object.
imageObj = CkJsonObject_Create();
CkJsonObject_ObjectOf2(json,"image",imageObj);
printf("image: fname=%s, width=%d, height=%d\n",CkJsonObject_stringOf(imageObj,"fname"),CkJsonObject_IntOf(imageObj,"w"),CkJsonObject_IntOf(imageObj,"h"));
// Get the "thumbnail" object.
thumbObj = CkJsonObject_Create();
CkJsonObject_ObjectOf2(json,"thumbnail",thumbObj);
printf("thumbnail: fname=%s, width=%d, height=%d\n",CkJsonObject_stringOf(thumbObj,"fname"),CkJsonObject_IntOf(thumbObj,"w")
,CkJsonObject_IntOf(thumbObj,"h"));
CkJsonObject_Dispose(json);
CkJsonObject_Dispose(imageObj);
CkJsonObject_Dispose(thumbObj);
}