Conscience Core
Classes | Namespaces | Macros | Typedefs | Functions | Variables
json.h File Reference
#include "Util/conscience_log.h"
#include <any>
#include <variant>
#include <exception>
#include <filesystem>
#include <memory>
#include <optional>
#include <type_traits>
#include <typeinfo>
#include <yyjson.h>

Go to the source code of this file.

Classes

struct  conscience_utils::JSON::JsonArrayBox
 
struct  conscience_utils::JSON::JsonObjectBox
 
struct  conscience_utils::JSON::JsonSerializableData
 
class  conscience_utils::JSON::MissingRequiredPropertyException
 
class  conscience_utils::JSON::CscJsonObjectReader
 
class  conscience_utils::JSON::CscJsonParser
 
class  conscience_utils::JSON::CscJsonObject
 

Namespaces

 conscience_utils
 
 conscience_utils::JSON
 
 conscience_utils::JSON::typing_helper
 

Macros

#define JSON_BASE_TYPES   std::nullptr_t, const char *, char *, bool, unsigned, int, long long, unsigned long long, string, float, double
 

Typedefs

template<class T >
using ptr = std::shared_ptr< T >
 
using conscience_utils::JSON::JsonArray = std::vector< JsonSerializableData >
 
using conscience_utils::JSON::JsonObject = std::map< std::string, JsonSerializableData >
 
using conscience_utils::JSON::JsonValue = std::variant< JSON_BASE_TYPES, JsonArrayBox, JsonObjectBox >
 
template<class T >
using conscience_utils::JSON::typing_helper::decay_t = std::decay_t< T >
 

Functions

string conscience_utils::JSON::vectorToJson (const vector< JsonSerializableData > &list, bool noNewLines)
 
string conscience_utils::JSON::mapToJson (std::initializer_list< JsonObject::value_type > init, bool noNewLines)
 
string conscience_utils::JSON::mapToJson (const map< string, JsonSerializableData > &map, bool noNewLines)
 
string conscience_utils::JSON::pairsToJson (const vector< pair< string, JsonSerializableData >> &entries, bool noNewLines)
 
string conscience_utils::JSON::jsonSerializableDataToString (JsonSerializableData data)
 
template<class TValue >
JsonSerializableData conscience_utils::JSON::vectorToJsonSerializable (const vector< TValue > &theVector)
 
map< string, JsonSerializableData > conscience_utils::JSON::mapToJsonSerializable (std::initializer_list< map< string, JsonSerializableData >::value_type > init)
 
template<class TValue >
map< string, JsonSerializableData > conscience_utils::JSON::mapToJsonSerializable (const map< string, TValue > &theMap)
 
template<class T >
conscience_utils::JSON::getNumericValueFromJson (yyjson_val *jsonValue)
 
template<IsString T>
yyjson_mut_val * conscience_utils::JSON::toJsonValue (const T &value, yyjson_mut_doc *doc)
 
yyjson_mut_val * conscience_utils::JSON::mapToJsonObject (const map< string, string > &map, yyjson_mut_doc *doc)
 
template<IsNotString T>
yyjson_mut_val * conscience_utils::JSON::toJsonValue (T &value, yyjson_mut_doc *doc)
 
template<class T >
yyjson_mut_val * conscience_utils::JSON::toJsonValue (const vector< T > &valueList, yyjson_mut_doc *doc, bool clone=false)
 

Variables

template<class T >
constexpr bool conscience_utils::JSON::typing_helper::is_scalar_json_v
 
template<class T >
constexpr bool conscience_utils::JSON::typing_helper::excluded_v
 
template<class T >
concept conscience_utils::JSON::IsString = std::is_same_v<T, string>
 
template<class T >
concept conscience_utils::JSON::IsNotString = !IsString<T>
 

Macro Definition Documentation

◆ JSON_BASE_TYPES

#define JSON_BASE_TYPES   std::nullptr_t, const char *, char *, bool, unsigned, int, long long, unsigned long long, string, float, double

Typedef Documentation

◆ ptr

template<class T >
using ptr = std::shared_ptr<T>