Oyranos Color Management System API - Version 0.9.6
tutorial_json_options.c

Shows the oyOptions_s API for JSON handling

#include "oyOptions_s.h"
#include <stdio.h>
int main (int argc, char ** argv)
{
int error = 0;
oyOptions_s * result = 0;
const char * t = NULL,
* json;
FILE * zout = stdout;
json = "{\"org\":{\"free\":[{\"s1key_a\":\"val_a\",\"s1key_b\":\"val_b\"},{\"s2key_c\":\"val_c\",\"s2key_d\":\"val_d\"}],\"key_e\":\"val_e\"}}";
oyOptions_s * options = NULL;
error = oyOptions_FromJSON( json, options, NULL, &result, "org" );
fprintf( zout, "%s\n", t?t:0 );
json = "{\"org\":{\"free\":[{\"s1key_a\":\"val_a\",\"s1key_b\":\"val_b\"},{\"s2key_c\":\"val_c\",\"s2key_d\":\"val_d\"}],\"key_e\":\"val_e_xxx\"}}";
error = oyOptions_FromJSON( json, options, NULL, &result, "org" );
fprintf( zout, "%s\n", t?t:0 );
json = "{\"org\":{\"free\":[{\"s1key_a\":\"val_a\",\"s1key_b\":\"val_b\"},{\"s2key_c\":\"val_c\",\"s2key_d\":\"val_d\"}],\"key_e\":\"val_e_yyy\",\"key_f\":\"val_f\"}}";
error = oyOptions_FromJSON( json, options, NULL, &result, "org" );
fprintf( zout, "%s\n", t?t:0 );
oyOptions_SetFromText( &options, OY_STD "/key_path",
"net/host/path", OY_CREATE_NEW);
json = "{\"org\":{\"free\":[{\"s1key_a\":\"val_a\",\"s1key_b\":\"val_b\"},{\"s2key_c\":\"val_c\",\"s2key_d\":\"val_d\"}],\"key_e\":\"val_e_yyy\",\"key_f\":\"val_f\"}}";
error = oyOptions_FromJSON( json, options, NULL, &result, "org/free/[%d]", 1 );
fprintf( zout, "%s\n", t?t:0 );
if(error)
fprintf( zout, "oyOptions_FromJSON() returned %d\n", error );
oyOptions_Release( &options );
oyOptions_Release( &result );
return 0;
}
oyOptions_s.h
oyOptions_s::oyOptions_SetFromText
int oyOptions_SetFromText(oyOptions_s **obj, const char *registration, const char *value, uint32_t flags)
change a value
Definition: oyOptions_s.c:1514
OY_STD
#define OY_STD
Definition: oyranos_definitions.h:121
oyOptions_s
generic Options
Definition: oyOptions_s.h:80
oyOptions_s::oyOptions_Release
OYAPI int OYEXPORT oyOptions_Release(oyOptions_s **options)
release and possibly deallocate a oyOptions_s object
Definition: oyOptions_s.c:91
oyNAME_NICK
@ oyNAME_NICK
Definition: oyranos_core.h:73
oyOptions_s::oyOptions_FromJSON
oyOptions_FromJSON
deserialise a text file to oyOptions_s data
oyOptions_s::oyOptions_GetText
const char * oyOptions_GetText(oyOptions_s *options, oyNAME_e type)
dump options to text
Definition: oyOptions_s.c:1086
OY_CREATE_NEW
#define OY_CREATE_NEW
Definition: oyOptions_s.h:52