DotNameLib
Loading...
Searching...
No Matches
JsonSerializer.hpp
Go to the documentation of this file.
1#pragma once
2
6#include <memory>
7
8namespace dotnamecpp::utils {
9
10 class JsonSerializer final : public IJsonSerializer {
11 public:
12 JsonSerializer(std::shared_ptr<IFileReader> fileReader,
13 std::shared_ptr<IFileWriter> fileWriter);
14
15 JsonSerializer(const JsonSerializer &) = delete;
19 ~JsonSerializer() override = default;
20
21 [[nodiscard]]
23 loadFromFile(const std::filesystem::path &filePath) const override;
24
25 [[nodiscard]]
26 Result<void, JsonError> saveToFile(const std::filesystem::path &filePath,
27 const nlohmann::json &jsonData,
28 int indent = 2) const override;
29
30 [[nodiscard]]
31 Result<nlohmann::json, JsonError> parse(const std::string &jsonString) const override;
32
33 [[nodiscard]]
34 Result<std::string, JsonError> toString(const nlohmann::json &jsonData,
35 int indent = 2) const override;
36
37 private:
38 std::shared_ptr<IFileReader> fileReader_;
39 std::shared_ptr<IFileWriter> fileWriter_;
40 };
41
42} // namespace dotnamecpp::utils
Interface for JSON serialization and parsing.
Definition IJsonSerializer.hpp:14
JsonSerializer(std::shared_ptr< IFileReader > fileReader, std::shared_ptr< IFileWriter > fileWriter)
Definition JsonSerializer.cpp:6
JsonSerializer(JsonSerializer &&)=delete
~JsonSerializer() override=default
Result< nlohmann::json, JsonError > parse(const std::string &jsonString) const override
Parse JSON from string.
Definition JsonSerializer.cpp:52
JsonSerializer(const JsonSerializer &)=delete
Result< void, JsonError > saveToFile(const std::filesystem::path &filePath, const nlohmann::json &jsonData, int indent=2) const override
Save JSON to file.
Definition JsonSerializer.cpp:30
Result< std::string, JsonError > toString(const nlohmann::json &jsonData, int indent=2) const override
Convert JSON to string.
Definition JsonSerializer.cpp:70
JsonSerializer & operator=(JsonSerializer &&)=delete
JsonSerializer & operator=(const JsonSerializer &)=delete
Result< nlohmann::json, JsonError > loadFromFile(const std::filesystem::path &filePath) const override
Load JSON from file.
Definition JsonSerializer.cpp:15
Definition UtilsError.hpp:93
Definition DirectoryManager.cpp:5