GRASS 8 Programmer's Manual  8.5.0dev(2025)-9b240c893d
gjson.c
Go to the documentation of this file.
1 /*****************************************************************************
2  *
3  * MODULE: GRASS json output interface
4  *
5  * AUTHOR: Nishant Bansal (nishant.bansal.282003@gmail.com)
6  *
7  * PURPOSE: parson library function wrapper
8  * part of the gjson library
9  *
10  * COPYRIGHT: (C) 2024 by the GRASS Development Team
11  *
12  * This program is free software under the GNU General Public
13  * License (>=v2). Read the file COPYING that comes with GRASS
14  * for details.
15  *
16  *****************************************************************************/
17 
18 #include "gjson.h"
19 
20 /* *************************************************************** */
21 /* ***** WRAPPER FOR PARSON FUNCTIONS USED IN GRASS ************** */
22 /* *************************************************************** */
23 
25 {
26  return json_value_init_object();
27 }
28 
30 {
31  return json_value_init_array();
32 }
33 
35 {
36  return json_value_get_type(value);
37 }
38 
40 {
41  return json_value_get_object(value);
42 }
43 
45 {
46  return json_object(value);
47 }
49  const char *name)
50 {
51  return json_object_get_object(object, name);
52 }
53 JSON_Array *G_json_object_get_array(const JSON_Object *object, const char *name)
54 {
55  return json_object_get_array(object, name);
56 }
57 JSON_Value *G_json_object_get_value(const JSON_Object *object, const char *name)
58 {
59  return json_object_get_value(object, name);
60 }
61 const char *G_json_object_get_string(const JSON_Object *object,
62  const char *name)
63 {
64  return json_object_get_string(object, name);
65 }
66 double G_json_object_get_number(const JSON_Object *object, const char *name)
67 {
68  return json_object_get_number(object, name);
69 }
70 int G_json_object_get_boolean(const JSON_Object *object, const char *name)
71 {
72  return json_object_get_boolean(object, name);
73 }
75 {
76  return json_object_get_wrapping_value(object);
77 }
79  JSON_Value *value)
80 {
81  return json_object_set_value(object, name, value);
82 }
84  const char *string)
85 {
86  return json_object_set_string(object, name, string);
87 }
89  double number)
90 {
91  return json_object_set_number(object, name, number);
92 }
94  int boolean)
95 {
96  return json_object_set_boolean(object, name, boolean);
97 }
99 {
100  return json_object_set_null(object, name);
101 }
103  const char *string)
104 {
105  return json_object_dotset_string(object, name, string);
106 }
107 const char *G_json_object_dotget_string(JSON_Object *object, const char *name)
108 {
109  return json_object_dotget_string(object, name);
110 }
112  double number)
113 {
114  return json_object_dotset_number(object, name, number);
115 }
116 double G_json_object_dotget_number(JSON_Object *object, const char *name)
117 {
118  return json_object_dotget_number(object, name);
119 }
121 {
122  return json_object_dotset_null(object, name);
123 }
125 {
126  return json_array(value);
127 }
128 JSON_Value *G_json_array_get_value(const JSON_Array *array, size_t index)
129 {
130  return json_array_get_value(array, index);
131 }
132 const char *G_json_array_get_string(const JSON_Array *array, size_t index)
133 {
134  return json_array_get_string(array, index);
135 }
136 double G_json_array_get_number(const JSON_Array *array, size_t index)
137 {
138  return json_array_get_number(array, index);
139 }
140 int G_json_array_get_boolean(const JSON_Array *array, size_t index)
141 {
142  return json_array_get_boolean(array, index);
143 }
144 
146 {
147  return json_array_append_value(array, value);
148 }
149 
151 {
152  return json_array_append_string(array, string);
153 }
154 
156 {
157  return json_array_append_number(array, number);
158 }
159 
161 {
162  return json_array_append_boolean(array, boolean);
163 }
164 
166 {
167  return json_array_append_null(array);
168 }
169 
171 {
173 }
174 
176 {
177  return json_serialize_to_string_pretty(value);
178 }
179 
181 {
183 }
185 {
186  json_value_free(value);
187 }
JSON_Status G_json_object_set_null(JSON_Object *object, const char *name)
Definition: gjson.c:98
JSON_Status G_json_array_append_boolean(JSON_Array *array, int boolean)
Definition: gjson.c:160
char * G_json_serialize_to_string_pretty(const JSON_Value *value)
Definition: gjson.c:175
void G_json_value_free(JSON_Value *value)
Definition: gjson.c:184
JSON_Status G_json_array_append_string(JSON_Array *array, const char *string)
Definition: gjson.c:150
JSON_Value * G_json_array_get_value(const JSON_Array *array, size_t index)
Definition: gjson.c:128
JSON_Status G_json_array_append_number(JSON_Array *array, double number)
Definition: gjson.c:155
JSON_Value_Type G_json_value_get_type(const JSON_Value *value)
Definition: gjson.c:34
JSON_Value * G_json_object_get_value(const JSON_Object *object, const char *name)
Definition: gjson.c:57
JSON_Object * G_json_value_get_object(const JSON_Value *value)
Definition: gjson.c:39
void G_json_free_serialized_string(char *string)
Definition: gjson.c:180
const char * G_json_object_dotget_string(JSON_Object *object, const char *name)
Definition: gjson.c:107
JSON_Status G_json_object_set_number(JSON_Object *object, const char *name, double number)
Definition: gjson.c:88
double G_json_object_get_number(const JSON_Object *object, const char *name)
Definition: gjson.c:66
JSON_Status G_json_object_dotset_null(JSON_Object *object, const char *name)
Definition: gjson.c:120
const char * G_json_array_get_string(const JSON_Array *array, size_t index)
Definition: gjson.c:132
JSON_Status G_json_array_append_null(JSON_Array *array)
Definition: gjson.c:165
const char * G_json_object_get_string(const JSON_Object *object, const char *name)
Definition: gjson.c:61
JSON_Array * G_json_object_get_array(const JSON_Object *object, const char *name)
Definition: gjson.c:53
int G_json_object_get_boolean(const JSON_Object *object, const char *name)
Definition: gjson.c:70
JSON_Array * G_json_array(const JSON_Value *value)
Definition: gjson.c:124
JSON_Value * G_json_object_get_wrapping_value(const JSON_Object *object)
Definition: gjson.c:74
double G_json_array_get_number(const JSON_Array *array, size_t index)
Definition: gjson.c:136
JSON_Status G_json_object_dotset_string(JSON_Object *object, const char *name, const char *string)
Definition: gjson.c:102
JSON_Value * G_json_value_init_object(void)
Definition: gjson.c:24
JSON_Status G_json_object_set_value(JSON_Object *object, const char *name, JSON_Value *value)
Definition: gjson.c:78
JSON_Value * G_json_value_init_array(void)
Definition: gjson.c:29
JSON_Status G_json_object_set_string(JSON_Object *object, const char *name, const char *string)
Definition: gjson.c:83
int G_json_array_get_boolean(const JSON_Array *array, size_t index)
Definition: gjson.c:140
JSON_Object * G_json_object_get_object(const JSON_Object *object, const char *name)
Definition: gjson.c:48
double G_json_object_dotget_number(JSON_Object *object, const char *name)
Definition: gjson.c:116
JSON_Status G_json_object_set_boolean(JSON_Object *object, const char *name, int boolean)
Definition: gjson.c:93
JSON_Status G_json_array_append_value(JSON_Array *array, JSON_Value *value)
Definition: gjson.c:145
void G_json_set_float_serialization_format(const char *format)
Definition: gjson.c:170
JSON_Object * G_json_object(const JSON_Value *value)
Definition: gjson.c:44
JSON_Status G_json_object_dotset_number(JSON_Object *object, const char *name, double number)
Definition: gjson.c:111
const char * name
Definition: named_colr.c:6
JSON_Status json_object_dotset_string(JSON_Object *object, const char *name, const char *string)
Definition: parson.c:2559
int json_object_get_boolean(const JSON_Object *object, const char *name)
Definition: parson.c:1660
JSON_Value * json_value_init_array(void)
Definition: parson.c:1901
JSON_Value * json_array_get_value(const JSON_Array *array, size_t index)
Definition: parson.c:1765
JSON_Status json_array_append_null(JSON_Array *array)
Definition: parson.c:2391
JSON_Object * json_value_get_object(const JSON_Value *value)
Definition: parson.c:1822
JSON_Status json_array_append_boolean(JSON_Array *array, int boolean)
Definition: parson.c:2378
JSON_Value * json_object_get_value(const JSON_Object *object, const char *name)
Definition: parson.c:1627
JSON_Status json_object_dotset_null(JSON_Object *object, const char *name)
Definition: parson.c:2616
JSON_Status json_object_set_number(JSON_Object *object, const char *name, double number)
Definition: parson.c:2473
void json_set_float_serialization_format(const char *format)
Definition: parson.c:2841
double json_array_get_number(const JSON_Array *array, size_t index)
Definition: parson.c:1783
const char * json_array_get_string(const JSON_Array *array, size_t index)
Definition: parson.c:1773
JSON_Status json_object_set_string(JSON_Object *object, const char *name, const char *string)
Definition: parson.c:2450
JSON_Status json_object_set_boolean(JSON_Object *object, const char *name, int boolean)
Definition: parson.c:2484
void json_free_serialized_string(char *string)
Definition: parson.c:2217
JSON_Object * json_object_get_object(const JSON_Object *object, const char *name)
Definition: parson.c:1650
JSON_Value * json_object_get_wrapping_value(const JSON_Object *object)
Definition: parson.c:1732
char * json_serialize_to_string_pretty(const JSON_Value *value)
Definition: parson.c:2196
JSON_Status json_array_append_value(JSON_Array *array, JSON_Value *value)
Definition: parson.c:2330
JSON_Object * json_object(const JSON_Value *value)
Definition: parson.c:2799
JSON_Value * json_value_init_object(void)
Definition: parson.c:1885
int json_array_get_boolean(const JSON_Array *array, size_t index)
Definition: parson.c:1798
JSON_Status json_object_set_value(JSON_Object *object, const char *name, JSON_Value *value)
Definition: parson.c:2404
void json_value_free(JSON_Value *value)
Definition: parson.c:1867
JSON_Status json_object_set_null(JSON_Object *object, const char *name)
Definition: parson.c:2495
JSON_Array * json_object_get_array(const JSON_Object *object, const char *name)
Definition: parson.c:1655
const char * json_object_dotget_string(const JSON_Object *object, const char *name)
Definition: parson.c:1677
JSON_Status json_array_append_string(JSON_Array *array, const char *string)
Definition: parson.c:2338
const char * json_object_get_string(const JSON_Object *object, const char *name)
Definition: parson.c:1635
double json_object_get_number(const JSON_Object *object, const char *name)
Definition: parson.c:1645
double json_object_dotget_number(const JSON_Object *object, const char *name)
Definition: parson.c:1689
JSON_Value_Type json_value_get_type(const JSON_Value *value)
Definition: parson.c:1817
JSON_Array * json_array(const JSON_Value *value)
Definition: parson.c:2804
JSON_Status json_object_dotset_number(JSON_Object *object, const char *name, double number)
Definition: parson.c:2588
JSON_Status json_array_append_number(JSON_Array *array, double number)
Definition: parson.c:2365
int JSON_Value_Type
Definition: parson.h:58
struct json_array_t JSON_Array
Definition: parson.h:46
int JSON_Status
Definition: parson.h:61
struct json_value_t JSON_Value
Definition: parson.h:47
struct json_object_t JSON_Object
Definition: parson.h:45