Esempio n. 1
0
static void test_string(void)
{
    JSON json = parseJSON(data, data+sizeof(data));
    JSON child = JSON_get(json, "app");
    assert(JSON_isValid(child));
    assert(JSON_type(child) == JSON_Array);
    assert(JSON_length(child) == 3);
    JSONArray *a;
    JSON *I, *E;
    int i = 0;

    JSON_ARRAY_EACH(child, a, I, E) {
        assert(JSON_isValid(JSON_get(*I, "name")));
        assert(JSON_isValid(JSON_get(*I, "line")));
        assert(JSON_isValid(JSON_get(*I, "version")));
        assert(JSON_isValid(JSON_get(*I, "flag")));
        size_t len;
        const char *name = JSON_getString(*I, "name", &len);
        int   line = JSON_getInt(*I, "line");
        double ver  = JSON_getDouble(*I, "version");
        assert(len == strlen(names[i]) && strncmp(name, names[i], len) == 0);
        assert(line == lines[i]);
        assert(ver  == versions[i]);
        fprintf(stderr, "%s %d %f\n", name, line, ver);
        i++;
    }
Esempio n. 2
0
static kbool_t RetrieveJsonKeyValue(KonohaContext *kctx, struct JsonBuf *jsonbuf, const char *key, size_t keylen_or_zero, struct JsonBuf *newbuf)
{
	JSON json = JSON_get(AsJSON(jsonbuf), key, KeyLen(key, keylen_or_zero));
	JSONObject_Retain(json);
	newbuf->json_i = json.bits;
	return newbuf->json_i != 0;
}
Esempio n. 3
0
//## JSON JSON.get(String key);
static KMETHOD kJSON_get(KonohaContext *kctx, KonohaStack *sfp)
{
	JSON obj = ((kJSON *)sfp[0].asObject)->json;
	const char *key = S_text(sfp[1].asString);
	JSON json = JSON_get(obj, key);
	KReturn(NewJsonObject(kctx, sfp, json));
}
Esempio n. 4
0
static kbool_t RetrieveJsonKeyValue(KonohaContext *kctx, struct JsonBuf *jsonbuf, const char *key, size_t keylen_or_zero, struct JsonBuf *newbuf)
{
	newbuf->json_i = JSON_get(toJSON(jsonbuf->json_i), key, KeyLen(key, keylen_or_zero)).bits;
	return newbuf->json_i != 0;
}