Unicode C
Unicode C
JSON: Access Array Values
See more JSON Examples
Demonstrates how to access values in a JSON array.Chilkat Unicode C Downloads
#include <C_CkJsonObjectW.h>
#include <C_CkJsonArrayW.h>
void ChilkatSample(void)
{
BOOL success;
HCkJsonObjectW json;
const wchar_t *jsonStr;
HCkJsonArrayW tagsArray;
int arraySize;
int i;
const wchar_t *sValue;
int iValue;
success = FALSE;
json = CkJsonObjectW_Create();
jsonStr = L"{ \"id\": 1, \"name\": \"A green door\", \"tags\": [\"home\", 22, \"green\"], \"price\": 125 }";
success = CkJsonObjectW_Load(json,jsonStr);
if (success != TRUE) {
wprintf(L"%s\n",CkJsonObjectW_lastErrorText(json));
CkJsonObjectW_Dispose(json);
return;
}
// Get the "tags" array, which contains "home", 22, "green"
tagsArray = CkJsonObjectW_ArrayOf(json,L"tags");
if (CkJsonObjectW_getLastMethodSuccess(json) == FALSE) {
wprintf(L"tags member not found.\n");
CkJsonObjectW_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 = CkJsonArrayW_getSize(tagsArray);
for (i = 0; i <= arraySize - 1; i++) {
sValue = CkJsonArrayW_stringAt(tagsArray,i);
wprintf(L"[%d] = %s\n",i,sValue);
iValue = CkJsonArrayW_IntAt(tagsArray,i);
wprintf(L"[%d] as integer = %d\n",i,iValue);
}
CkJsonArrayW_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
CkJsonObjectW_Dispose(json);
}