C
C
Load a JSON Array
See more JSON Examples
The Chilkat JSON API requires the top-level JSON to be an object. Therefore, to load an array requires that it first be wrapped as an object.Chilkat C Downloads
#include <C_CkStringBuilder.h>
#include <C_CkJsonObject.h>
#include <C_CkJsonArray.h>
void ChilkatSample(void)
{
BOOL success;
const char *jsonArrayStr;
HCkStringBuilder sbJson;
HCkJsonObject json;
HCkJsonArray jArray;
HCkJsonObject jObjId;
success = FALSE;
// Imagine we want to load this JSON array for parsing:
jsonArrayStr = "[{\"id\":200},{\"id\":196}]";
// First wrap it in a JSON object by prepending "{ "array":" and appending "}"
sbJson = CkStringBuilder_Create();
CkStringBuilder_Append(sbJson,"{\"array\":");
CkStringBuilder_Append(sbJson,jsonArrayStr);
CkStringBuilder_Append(sbJson,"}");
json = CkJsonObject_Create();
CkJsonObject_Load(json,CkStringBuilder_getAsString(sbJson));
// Now we can get the JSON array
jArray = CkJsonObject_ArrayAt(json,0);
// Do what you want with the JSON array...
// For example:
jObjId = CkJsonArray_ObjectAt(jArray,0);
printf("%d\n",CkJsonObject_IntOf(jObjId,"id"));
CkJsonObject_Dispose(jObjId);
CkJsonArray_Dispose(jArray);
CkStringBuilder_Dispose(sbJson);
CkJsonObject_Dispose(json);
}