Oyjl API examples.
#include <stdio.h>
void testOyjl( void );
int main (int argc OY_UNUSED, char ** argv OY_UNUSED)
{
int error = 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\"}}";
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\"}}";
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\"}}";
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\"}}";
fprintf( zout, "%s\n", t?t:0 );
if(error)
fprintf( zout, "oyOptions_FromJSON() returned %d\n", error );
testOyjl( );
return 0;
}
#include "oyranos_json.h"
void testOyjl(void)
{
const char * text = "{\"org\":{\"test\":[{\"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\"}}";
oyjl_val value = 0;
int level = 0;
char * json = 0;
char error_buffer[128];
oyjl_val root = oyjlTreeParse( text, error_buffer, 128 );
oyjlTreeToJson( root, &level, &json );
fprintf( stderr, "%s\n", json );
free(json); json = NULL;
value = oyjlTreeGetValuef( root, 0, "org/test/[%d]", 1 );
oyjlTreeToJson( value, &level, &json );
fprintf( stderr, "%s\n", json );
free(json); json = NULL;
oyjlTreeClearValue( root, "org/test/[0]" );
oyjlTreeToJson( root, &level, &json );
fprintf( stderr, "%s\n", json );
free(json); json = NULL;
value = oyjlTreeGetValue( root, OYJL_CREATE_NEW, "org/add/opt" );
oyjlTreeToJson( root, &level, &json );
fprintf( stderr, "%s\n", json );
free(json); json = NULL;
oyjlValueSetString( value, "value" );
oyjlTreeToJson( root, &level, &json );
fprintf( stderr, "%s\n", json );
free(json); json = NULL;
oyjlTreeFree ( root );
root = oyjlTreeNew( "new/tree/key" );
oyjlTreeToJson( root, &level, &json );
fprintf( stderr, "%s\n", json );
free(json); json = NULL;
oyjlTreeFree( root );
}
#define OY_CREATE_NEW
Definition: oyOptions_s.h:52
@ oyNAME_NICK
Definition: oyranos_core.h:73
#define OY_STD
Definition: oyranos_definitions.h:144
generic Options
Definition: oyOptions_s.h:80
OYAPI int OYEXPORT oyOptions_Release(oyOptions_s **options)
release and possibly deallocate a oyOptions_s object
Definition: oyOptions_s.c:91
const char * oyOptions_GetText(oyOptions_s *options, oyNAME_e type)
dump options to text
Definition: oyOptions_s.c:1091
int oyOptions_FromJSON(const char *json_text, oyOptions_s *options, oyOptions_s **result, const char *xformat,...)
deserialise a text file to oyOptions_s data
Definition: oyOptions_s.c:426
int oyOptions_SetFromString(oyOptions_s **obj, const char *registration, const char *value, uint32_t flags)
change a value
Definition: oyOptions_s.c:1519