Getting a KiiObject
The Thing SDK Embedded can get a KiiObject by specifying its ID. By storing the ID of an existing KiiObject, you can later reference the KiiObject. See "Object ID and URI" (Android, iOS, JavaScript) for more information on the KiiObject ID.
Note that the Thing SDK Embedded does not directly support search with queries. However, you can search with queries by calling the REST API from the thing. See Executing REST API for sample code to search with queries using the REST API.
To get JSON data of a KiiObject, execute the kii_object_get
function with the KiiObject ID specified.
/* Set the KiiObject ID. */
#define OBJECT_ID "STATUS_TEMPERATURE"
int ret;
/* Set bucket parameters. */
kii_bucket_t bucket;
memset(&bucket, 0x00, sizeof(kii_bucket_t));
bucket.scope = KII_SCOPE_THING;
bucket.bucket_name = "myBucket";
bucket.scope_id = "VENDOR_THING_ID:rBnvSPOXBDF9r29GJeGS";
/* Get the KiiObject. */
ret = kii_object_get(&kii, &bucket, OBJECT_ID);
if (ret != 0) {
/* Handle the error. */
return;
}
printf("object data:%s\n", kii.kii_core.response_body);
Specify the target bucket with the kii_bucket_t
structure. See Creating a KiiObject to learn how to specify it.
The kii_core.response_body
member of the kii_t
structure stores the retrieved result. As seen in the sample code, you can get the JSON string by directly referencing this member.
You can use the kiijson library to get a value for a given key in the JSON string. See <a href="/en/guides/thingifsdk/nontrait/thing/json-library/">Parsing JSON to learn how to implement it.
See below for an example of an obtained KiiObject. Note that real messages will not have any carriage return.
{
"_created": 1466154835092,
"_id": "STATUS_TEMPERATURE",
"_modified": 1466154939409,
"_owner": "th.727f20b00022-e1ba-6e11-42e2-08707492",
"_version": "1",
"power": true,
"status": "NORMAL",
"temperature": 25
}
Referencing predefined fields
Kii Cloud automatically sets values to these fields when a KiiObject is created. The JSON string includes these fileds when retrieved.
Key name | Description |
---|---|
_id | Object ID, which is automatically assigned or explicitly specified when the KiiObject is created. The ID value is guaranteed to be unique within the bucket. See "Object ID and URI" (Android, iOS, JavaScript) for more information. |
_owner | User or thing which creates the KiiObject. This field is especially referenced in the object ACL. |
_created | Time when the KiiObject is created in UNIX time (msec) in UTC. |
_modified | Last time when the KiiObject is updated in UNIX time (msec) in UTC. It has the same value as _created when the KiiObject is created. |
_version | Version number of the KiiObject. It is 1 when the KiiObject is created and incremented by 1 every time the KiiObject is updated. This field is used in the optimistic lock to detect update conflicts. |