// Create a payload with new values json_t* makeJansson(Status *stat) { json_t *newval, *values; values = json_array(); int j; for (j = 0; j < stat->num; j++) { if (stat->type == 0) { newval = json_pack("{sssf}", "title", zeit, "value", stat->result[j]); } else { json_real_set(newval, stat->result[j]); } if (!newval) { syslog(LOG_ERR, "error in creating new entry for %s.json\n", stat->name); return NULL; } json_array_append_new(values, newval); } if (stat->type != 2) { free(stat->result); } json_t *payload = json_object(); json_object_set(payload, "name", json_string(stat->name)); json_object_set(payload, "type", json_integer(stat->type)); json_object_set(payload, "payload", values); return payload; }
GhbValue* ghb_double_value(gdouble dval) { static GhbValue *gval = NULL; if (gval == NULL) gval = json_real(dval); else json_real_set(gval, dval); return gval; }
static void run_tests() { json_t *integer, *real; json_int_t i; double d; integer = json_integer(5); real = json_real(100.1); if(!integer) fail("unable to create integer"); if(!real) fail("unable to create real"); i = json_integer_value(integer); if(i != 5) fail("wrong integer value"); d = json_real_value(real); if(d != 100.1) fail("wrong real value"); d = json_number_value(integer); if(d != 5.0) fail("wrong number value"); d = json_number_value(real); if(d != 100.1) fail("wrong number value"); json_decref(integer); json_decref(real); #ifdef NAN real = json_real(NAN); if(real != NULL) fail("could construct a real from NaN"); real = json_real(1.0); if(json_real_set(real, NAN) != -1) fail("could set a real to NaN"); if(json_real_value(real) != 1.0) fail("real value changed unexpectedly"); json_decref(real); #endif #ifdef INFINITY test_inifity(); #endif }
//native json_real_set(Handle:hFloat, Float:value); static cell_t Native_json_real_set(IPluginContext *pContext, const cell_t *params) { HandleError err; HandleSecurity sec; sec.pOwner = NULL; sec.pIdentity = myself->GetIdentity(); // Param 1 json_t *object; Handle_t hndlObject = static_cast<Handle_t>(params[1]); if ((err=g_pHandleSys->ReadHandle(hndlObject, htJanssonObject, &sec, (void **)&object)) != HandleError_None) { return pContext->ThrowNativeError("Invalid <Real> handle %x (error %d)", hndlObject, err); } return (json_real_set(object, sp_ctof(params[2])) == 0); }
static void test_inifity() { json_t *real = json_real(INFINITY); if (real != NULL) fail("could construct a real from Inf"); real = json_real(1.0); if (json_real_set(real, INFINITY) != -1) fail("could set a real to Inf"); if (json_real_value(real) != 1.0) fail("real value changed unexpectedly"); json_decref(real); #ifdef _MSC_VER #pragma warning(pop) #endif }
/* Call the simple functions not covered by other tests of the public API */ int main() { json_t *value; value = json_integer(1); if(json_typeof(value) != JSON_INTEGER) fail("json_typeof failed"); if(json_is_object(value)) fail("json_is_object failed"); if(json_is_array(value)) fail("json_is_array failed"); if(json_is_string(value)) fail("json_is_string failed"); if(!json_is_integer(value)) fail("json_is_integer failed"); if(json_is_real(value)) fail("json_is_real failed"); if(!json_is_number(value)) fail("json_is_number failed"); if(json_is_true(value)) fail("json_is_true failed"); if(json_is_false(value)) fail("json_is_false failed"); if(json_is_boolean(value)) fail("json_is_boolean failed"); if(json_is_null(value)) fail("json_is_null failed"); json_decref(value); value = json_string("foo"); if(!value) fail("json_string failed"); if(strcmp(json_string_value(value), "foo")) fail("invalid string value"); if(json_string_set(value, "bar")) fail("json_string_set failed"); if(strcmp(json_string_value(value), "bar")) fail("invalid string value"); json_decref(value); value = json_string(NULL); if(value) fail("json_string(NULL) failed"); /* invalid UTF-8 */ value = json_string("a\xefz"); if(value) fail("json_string(<invalid utf-8>) failed"); value = json_string_nocheck("foo"); if(!value) fail("json_string_nocheck failed"); if(strcmp(json_string_value(value), "foo")) fail("invalid string value"); if(json_string_set_nocheck(value, "bar")) fail("json_string_set_nocheck failed"); if(strcmp(json_string_value(value), "bar")) fail("invalid string value"); json_decref(value); /* invalid UTF-8 */ value = json_string_nocheck("qu\xff"); if(!value) fail("json_string_nocheck failed"); if(strcmp(json_string_value(value), "qu\xff")) fail("invalid string value"); if(json_string_set_nocheck(value, "\xfd\xfe\xff")) fail("json_string_set_nocheck failed"); if(strcmp(json_string_value(value), "\xfd\xfe\xff")) fail("invalid string value"); json_decref(value); value = json_integer(123); if(!value) fail("json_integer failed"); if(json_integer_value(value) != 123) fail("invalid integer value"); if(json_number_value(value) != 123.0) fail("invalid number value"); if(json_integer_set(value, 321)) fail("json_integer_set failed"); if(json_integer_value(value) != 321) fail("invalid integer value"); if(json_number_value(value) != 321.0) fail("invalid number value"); json_decref(value); value = json_real(123.123); if(!value) fail("json_real failed"); if(json_real_value(value) != 123.123) fail("invalid integer value"); if(json_number_value(value) != 123.123) fail("invalid number value"); if(json_real_set(value, 321.321)) fail("json_real_set failed"); if(json_real_value(value) != 321.321) fail("invalid real value"); if(json_number_value(value) != 321.321) fail("invalid number value"); json_decref(value); value = json_true(); if(!value) fail("json_true failed"); json_decref(value); value = json_false(); if(!value) fail("json_false failed"); json_decref(value); value = json_null(); if(!value) fail("json_null failed"); json_decref(value); /* Test reference counting on singletons (true, false, null) */ value = json_true(); if(value->refcount != (size_t)-1) fail("refcounting true works incorrectly"); json_decref(value); if(value->refcount != (size_t)-1) fail("refcounting true works incorrectly"); json_incref(value); if(value->refcount != (size_t)-1) fail("refcounting true works incorrectly"); value = json_false(); if(value->refcount != (size_t)-1) fail("refcounting false works incorrectly"); json_decref(value); if(value->refcount != (size_t)-1) fail("refcounting false works incorrectly"); json_incref(value); if(value->refcount != (size_t)-1) fail("refcounting false works incorrectly"); value = json_null(); if(value->refcount != (size_t)-1) fail("refcounting null works incorrectly"); json_decref(value); if(value->refcount != (size_t)-1) fail("refcounting null works incorrectly"); json_incref(value); if(value->refcount != (size_t)-1) fail("refcounting null works incorrectly"); return 0; }
int ast_json_real_set(struct ast_json *real, double value) { return json_real_set((json_t *)real, value); }
int la_codec_real_set(la_codec_value_t *real, double value) { return json_real_set((json_t *) real, value); }
// paste payload into existing .json int pasteJSON(json_t *payload, const char *clientName) { // Extract data from payload const char * name = json_string_value(json_object_get(payload, "name")); int type = json_integer_value(json_object_get(payload, "type")); // Type 2: CSV if (type == 2) { FILE *fp; char* file = composeFileName(clientName, name, "csv"); const char * output = json_string_value(json_object_get(payload, "payload")); fp = fopen(file, "w"); fprintf(fp, "%s",output); fclose(fp); return 1; } json_t *array = json_object_get(payload, "payload"); json_t *root, *dataseq, *graph, *arry; json_error_t error; // Load *.json const char* file = composeFileName(clientName, name, "json"); root = json_load_file(file, 0, &error); // Check for Errors if (!root) { syslog(LOG_ERR, "Unable to load json File! error: on line %d: %s\n", error.line, error.text); exit(1); } // Get old Data graph = json_object_get(root, "graph"); dataseq = getDataSequences(graph); if (!check(dataseq)) { printError(name); } // Process Every Datasequence size_t j; for (j = 0; j < json_array_size(dataseq); j++) { // If Type is 0 /Line (standard case) append new value at the bottom arry = getSingleSeqeunce(dataseq, j); if (strncmp(getType(root), "line", 2) == 0) { if (json_array_size(arry) >= (size_t) getMaxCount()) { if (json_array_remove(arry,0)) { syslog(LOG_ERR, "error in processing %s.json\n", name); return 0; } } if (json_array_append_new(arry, json_array_get(array, j))) { syslog(LOG_ERR, "error in appending new entry in %s.json\n", name); return 0; } // When Type is Bar, every Entry has its own name and you change the value } else { size_t k; for (k = 0; k < json_array_size(arry); k++) { if (json_real_set(json_object_get(json_array_get(arry, k), "value"), json_real_value(json_array_get(array, k))) ) { return 0; } syslog(LOG_ERR, "error in changing entry in %s.json\n", name); } } } dumpJSON(root, file); return 1; }