C
C
JSON: Access Array Values
See more JSON Examples
Demonstrates how to access values in a JSON array.Chilkat C Downloads
#include <C_CkJsonObject.h>
#include <C_CkJsonArray.h>
void ChilkatSample(void)
{
BOOL success;
HCkJsonObject json;
const char *jsonStr;
HCkJsonArray tagsArray;
int arraySize;
int i;
const char *sValue;
int iValue;
success = FALSE;
json = CkJsonObject_Create();
jsonStr = "{ \"id\": 1, \"name\": \"A green door\", \"tags\": [\"home\", 22, \"green\"], \"price\": 125 }";
success = CkJsonObject_Load(json,jsonStr);
if (success != TRUE) {
printf("%s\n",CkJsonObject_lastErrorText(json));
CkJsonObject_Dispose(json);
return;
}
// Get the "tags" array, which contains "home", 22, "green"
tagsArray = CkJsonObject_ArrayOf(json,"tags");
if (CkJsonObject_getLastMethodSuccess(json) == FALSE) {
printf("tags member not found.\n");
CkJsonObject_Dispose(json);
return;
}
// Get the value at each array index.
// Output will be:
// [0] = home
// [0] as integer = 0
// [1] = 22
// [1] as integer = 22
// [2] = green
// [2] as integer = 0
arraySize = CkJsonArray_getSize(tagsArray);
for (i = 0; i <= arraySize - 1; i++) {
sValue = CkJsonArray_stringAt(tagsArray,i);
printf("[%d] = %s\n",i,sValue);
iValue = CkJsonArray_IntAt(tagsArray,i);
printf("[%d] as integer = %d\n",i,iValue);
}
CkJsonArray_Dispose(tagsArray);
// Note: The StringAt method returns the value as a string regardless of the type.
// The IntAt method returns the value as an integer. If the value does not convert to
// an integer, then 0 is returned
CkJsonObject_Dispose(json);
}