15#include <initializer_list>
48 std::reference_wrapper<std::nullptr_t>,
49 std::reference_wrapper<bool>,
50 std::reference_wrapper<int>,
51 std::reference_wrapper<float>,
52 std::reference_wrapper<std::string>,
54 std::reference_wrapper<SerializableObject>
101 void ToJson(std::ostream& os,
int indentLevel)
const;
109#define SERIALIZABLE(_in) ( SerializableStruct(std::ref(_in) , #_in ) )
113 std::ostream&
operator<<(std::ostream& os,
const SerializableStruct& ss);
170 std::vector<SerializableStruct>
vec;
175 std::ostream&
ToJson(std::ostream& _file ,
unsigned int _depth)
177 std::string indent(_depth,
'\t');
178 _file <<
"{" << std::endl;
180 for (
size_t i = 0; i <
vec.size(); ++i)
182 _file << indent <<
" " <<
vec[i];
184 if (i <
vec.size() - 1)
192 _file << indent <<
"}";
203 void ToJson(
const fs::path& _fileName,
const fs::path& _directry =
"./jsonFiles")
205 if (!fs::exists(_directry))
209 fs::create_directories(_directry);
211 catch (
const fs::filesystem_error& e)
219 fs::path filePass = _directry;
222 filePass /= _fileName;
224 filePass.replace_extension(
".json");
226 std::ofstream file(filePass, std::ios::out | std::ios::trunc);
235 file <<
"{" <<std::endl;
237 for (
size_t i = 0; i <
vec.size(); ++i)
239 file <<
" " <<
vec[i];
241 if (i <
vec.size() - 1)
258 for (
auto& value :
vec)
260 value.FormJson(json);
266 for (
auto& value :
vec)
268 value.FormJson(_json);
static void PrintAssertStatic(const std::string _in)
エラー出力用コンソール出力(文字色しか変わらない)
Definition Debug.cpp:152
Jsonデータを取り扱うクラス
Definition Json.hpp:35
Json読み込みクラス
Definition Json.hpp:370
Json Parse()
読み込んだJsonファイルを変換し、Jsonクラスとして返します
Definition Json.hpp:411
自身の監視対象データをJson形式にシリアライズしたり、 Json形式からデシリアライズできる基底データクラス
Definition JsonUtility.hpp:168
std::vector< SerializableStruct > vec
Definition JsonUtility.hpp:170
void ToJson(const fs::path &_fileName, const fs::path &_directry="./jsonFiles")
Definition JsonUtility.hpp:203
void FormJson(Json _json)
Definition JsonUtility.hpp:264
std::ostream & ToJson(std::ostream &_file, unsigned int _depth)
Definition JsonUtility.hpp:175
SerializableObject(std::initializer_list< SerializableStruct > _in)
Definition JsonUtility.hpp:198
void FormJson(std::string _json)
Definition JsonUtility.hpp:254
Definition Accessor.hpp:110
std::ostream & operator<<(std::ostream &os, const SerializableStruct &ss)
Definition JsonUtility.cpp:82
std::string name
Definition JsonUtility.hpp:60
std::variant< std::reference_wrapper< std::nullptr_t >, std::reference_wrapper< bool >, std::reference_wrapper< int >, std::reference_wrapper< float >, std::reference_wrapper< std::string >, std::reference_wrapper< SerializableObject > > Value
値を管理する共用体
Definition JsonUtility.hpp:46
SerializableStruct(bool &_bool, std::string _name)
Definition JsonUtility.hpp:71
SerializableStruct()=delete
SerializableStruct(float &_float, std::string _name)
Definition JsonUtility.hpp:76
SerializableStruct(std::string &_str, std::string _name)
Definition JsonUtility.hpp:66
Value value
Definition JsonUtility.hpp:59
SerializableStruct(SerializableObject &_serializableClass, std::string _name)
Definition JsonUtility.hpp:87
ValueType type
Definition JsonUtility.hpp:61
void FormJson(Json _json)
Definition JsonUtility.cpp:5
void ToJson(std::ostream &os, int indentLevel) const
Definition JsonUtility.cpp:60
SerializableStruct(int &_int, std::string _name)
Definition JsonUtility.hpp:81
ValueType
Definition JsonUtility.hpp:32
@ NULLPTR_T
Definition JsonUtility.hpp:33
@ INT
Definition JsonUtility.hpp:35
@ STRING
Definition JsonUtility.hpp:37
@ SERIALIZABLE_OBJECT
Definition JsonUtility.hpp:38
@ BOOL
Definition JsonUtility.hpp:34
@ FLOAT
Definition JsonUtility.hpp:36