COSMOS core  1.0.2 (beta)
Comprehensive Open-architecture Solution for Mission Operations Systems
JSONValue Class Reference

#include <jsonvalue.h>

Collaboration diagram for JSONValue:

Public Types

enum  JsonValueType : uint8_t {
  JsonValueType::NULL_VALUE = 0, JsonValueType::STRING = 1, JsonValueType::NUMBER = 2, JsonValueType::JSON_OBJECT = 3,
  JsonValueType::JSON_ARRAY = 4, JsonValueType::BOOL_TRUE = 5, JsonValueType::BOOL_FALSE = 6
}
 

Public Member Functions

 JSONValue ()
 
 JSONValue (uint8_t val)
 
 JSONValue (int8_t val)
 
 JSONValue (char val)
 
 JSONValue (bool val)
 
 JSONValue (uint16_t val)
 
 JSONValue (int16_t val)
 
 JSONValue (uint32_t val)
 
 JSONValue (int32_t val)
 
 JSONValue (uint64_t val)
 
 JSONValue (int64_t val)
 
 JSONValue (float val)
 
 JSONValue (double val)
 
 JSONValue (string val)
 
 JSONValue (Vector val)
 
 JSONValue (Quaternion val)
 
 JSONValue (JSONObject val)
 
 JSONValue (JSONArray val)
 
void set_null ()
 
void set (string val)
 
void set (float val)
 
void set (double val)
 
void set (uint64_t val)
 
void set (uint32_t val)
 
void set (uint16_t val)
 
void set (uint8_t val)
 
void set (int64_t val)
 
void set (int32_t val)
 
void set (int16_t val)
 
void set (int8_t val)
 
void set (Vector val)
 
void set (Quaternion val)
 
void set (char val)
 
void set (JSONObject val)
 
void set (JSONArray val)
 
void set (bool val)
 
bool isNull ()
 
bool isString ()
 
bool isNumber ()
 
bool isObject ()
 
bool isArray ()
 
bool isBool ()
 
string to_json_string ()
 

Private Attributes

string value_as_string
 
JsonValueType type
 

Member Enumeration Documentation

enum JSONValue::JsonValueType : uint8_t
strong
Enumerator
NULL_VALUE 
STRING 
NUMBER 
JSON_OBJECT 
JSON_ARRAY 
BOOL_TRUE 
BOOL_FALSE 
15  : uint8_t {
16  NULL_VALUE = 0,
17  STRING = 1,
18  NUMBER = 2,
19  JSON_OBJECT = 3,
20  JSON_ARRAY = 4,
21  BOOL_TRUE = 5,
22  BOOL_FALSE = 6,
23  };

Constructor & Destructor Documentation

JSONValue::JSONValue ( )
6 {
8  value_as_string = "null";
9 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
JSONValue::JSONValue ( uint8_t  val)
17 { set(val); }
JSONValue::JSONValue ( int8_t  val)
21 { set(val); }
JSONValue::JSONValue ( char  val)
22 { set(val); }
JSONValue::JSONValue ( bool  val)
26 {
27  if(val){
29  value_as_string = "true";
30  } else {
32  value_as_string = "false";
33  }
34 
35 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
JSONValue::JSONValue ( uint16_t  val)
16 { set(val); }
JSONValue::JSONValue ( int16_t  val)
20 { set(val); }
JSONValue::JSONValue ( uint32_t  val)
15 { set(val); }
JSONValue::JSONValue ( int32_t  val)
19 { set(val); }
JSONValue::JSONValue ( uint64_t  val)
14 { set(val); }
JSONValue::JSONValue ( int64_t  val)
18 { set(val); }
JSONValue::JSONValue ( float  val)
12 { set(val); }
JSONValue::JSONValue ( double  val)
13 { set(val); }
JSONValue::JSONValue ( string  val)
11 { set(val); }
JSONValue::JSONValue ( Vector  val)
37 { set(val); }
JSONValue::JSONValue ( Quaternion  val)
38 { set(val); }
JSONValue::JSONValue ( JSONObject  val)
23 { set(val); }
JSONValue::JSONValue ( JSONArray  val)
24 { set(val); }

Member Function Documentation

void JSONValue::set_null ( )
41 {
43  value_as_string = "null";
44 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( string  val)
47 {
49 // value_as_string = "\"" + val + "\"";
50  value_as_string = "\"";
51  for (char cval : val)
52  {
53  switch(cval)
54  {
55  case '"':
56  value_as_string += "\\\"";
57  break;
58  case '\\':
59  value_as_string += "\\\\";
60  break;
61  case '/':
62  value_as_string += "\\/";
63  break;
64  case '\b':
65  value_as_string += "\\\b";
66  break;
67  case '\f':
68  value_as_string += "\\\f";
69  break;
70  case '\n':
71  value_as_string += "\\\n";
72  break;
73  case '\r':
74  value_as_string += "\\\r";
75  break;
76  case '\t':
77  value_as_string += "\\\t";
78  break;
79  default:
80  value_as_string += cval;
81  break;
82  }
83  }
84  value_as_string += "\"";
85 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( float  val)
88 {
90  char val_str[50];
91  sprintf(val_str, "%f", val);
92  value_as_string = val_str;
93 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( double  val)
96 {
98  char val_str[50];
99  sprintf(val_str, "%f", val);
100  value_as_string = val_str;
101 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( uint64_t  val)
105 {
108 }
string to_unsigned(uint64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:265
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( uint32_t  val)
111 {
114 }
string to_unsigned(uint64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:265
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( uint16_t  val)
117 {
120 }
string to_unsigned(uint64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:265
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( uint8_t  val)
123 {
126 }
string to_unsigned(uint64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:265
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( int64_t  val)
129 {
131  value_as_string = to_signed(val);
132 }
string to_signed(int64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:245
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( int32_t  val)
135 {
137  value_as_string = to_signed(val);
138 }
string to_signed(int64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:245
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( int16_t  val)
141 {
143  value_as_string = to_signed(val);
144 }
string to_signed(int64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:245
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( int8_t  val)
147 {
149  value_as_string = to_signed(val);
150 }
string to_signed(int64_t value, uint16_t digits, bool zerofill)
Definition: stringlib.cpp:245
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( Vector  val)
192 {
194  JSONObject jobject;
195  jobject.addElement("x", to_double(val.x));
196  jobject.addElement("y", to_double(val.y));
197  jobject.addElement("z", to_double(val.z));
198  value_as_string = jobject.to_json_string();
199 }
double y
Definition: vector.h:713
double z
Definition: vector.h:714
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
double x
Definition: vector.h:712
Definition: jsonobject.h:5
void addElement(string key, JSONValue value)
Definition: jsonobject.cpp:10
string to_json_string()
Definition: jsonobject.cpp:91
string to_double(double value, uint16_t precision)
Definition: stringlib.cpp:285
void JSONValue::set ( Quaternion  val)
202 {
204  JSONObject jobject;
205  jobject.addElement("x", to_double(val.x));
206  jobject.addElement("y", to_double(val.y));
207  jobject.addElement("z", to_double(val.z));
208  jobject.addElement("w", to_double(val.w));
209  value_as_string = jobject.to_json_string();
210 }
double y
Definition: vector.h:713
double z
Definition: vector.h:714
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
double x
Definition: vector.h:712
Definition: jsonobject.h:5
void addElement(string key, JSONValue value)
Definition: jsonobject.cpp:10
double w
Definition: vector.h:715
string to_json_string()
Definition: jsonobject.cpp:91
string to_double(double value, uint16_t precision)
Definition: stringlib.cpp:285
void JSONValue::set ( char  val)
153 {
155  value_as_string = "\"" + std::to_string(val) + "\"";
156 }
string to_string(char *value)
Definition: stringlib.cpp:220
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( JSONObject  val)
159 {
162 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
string to_json_string()
Definition: jsonobject.cpp:91
void JSONValue::set ( JSONArray  val)
165 {
166  string jsonStr;
168 
169  jsonStr = "[";
170  for(size_t i=0; i < val.size(); i++){
171  jsonStr += val[i].to_json_string();
172  if(i < val.size()-1){
173  jsonStr+= ",";
174  }
175  }
176  jsonStr += "]";
177  value_as_string = jsonStr;
178 }
int i
Definition: rw_test.cpp:37
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
void JSONValue::set ( bool  val)
181 {
182  if(val){
184  value_as_string = "true";
185  } else {
187  value_as_string = "false";
188  }
189 }
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
bool JSONValue::isNull ( )
214 {
216  return true;
217  }
218  return false;
219 }
JsonValueType type
Definition: jsonvalue.h:77
bool JSONValue::isString ( )
222 {
224  return true;
225  }
226  return false;
227 }
JsonValueType type
Definition: jsonvalue.h:77
bool JSONValue::isNumber ( )
230 {
232  return true;
233  }
234  return false;
235 }
JsonValueType type
Definition: jsonvalue.h:77
bool JSONValue::isObject ( )
238 {
240  return true;
241  }
242  return false;
243 }
JsonValueType type
Definition: jsonvalue.h:77
bool JSONValue::isArray ( )
246 {
248  return true;
249  }
250  return false;
251 }
JsonValueType type
Definition: jsonvalue.h:77
bool JSONValue::isBool ( )
254 {
256  return true;
257  }
259  return true;
260  }
261  return false;
262 }
JsonValueType type
Definition: jsonvalue.h:77
string JSONValue::to_json_string ( )
264 { return value_as_string; }
string value_as_string
Definition: jsonvalue.h:76

Member Data Documentation

string JSONValue::value_as_string
private
JsonValueType JSONValue::type
private

The documentation for this class was generated from the following files: