Searching for myself
-
Автор темы
- #1
Надеюсь что это последний вопрос по этой теме
Как правильно реализовать загрузку из json в вектор ?
Структура:
ps: тупые вопросы, ну по другому я не могу
C++:
std::filesystem::path fsFilePath( "DataBase" );
// Check for extension if it is not our replace it
if ( fsFilePath.extension( ) != ".data" )
fsFilePath.replace_extension( ".data" );
// Get utf-8 full path to file
const std::string szFile = std::filesystem::path( m_fsAccountsPath / fsFilePath ).string( );
nlohmann::json jBasicJson = { };
try {
for ( auto &variable : g_Accounts.Accounts( ) ) {
nlohmann::json jTempJson = { };
jTempJson[ "_Account_Login_" ] = variable.m_strLogin;
jTempJson[ "_Account_Password_" ] = variable.m_strPassword;
jTempJson[ "_Account_Privileges_" ] = variable.m_usPrivileges;
// Add current variable to file
jBasicJson.push_back( jTempJson );
}
} catch ( ... ) {
return;
}
auto strFileString = jBasicJson.dump( );
// Open output file
std::ofstream ofsOutFile( szFile, std::ios::out | std::ios::trunc );
if ( !ofsOutFile.good( ) )
return;
try {
// Write stored variables
ofsOutFile << strFileString;
ofsOutFile.close( );
} catch ( ... ) { }
C++:
std::string strFileString;
// Get utf-8 full path to file
const std::string szFile = std::filesystem::path( m_fsAccountsPath / "DataBase.data" ).string( );
// Open input file
if ( std::ifstream ifsInputFile( szFile, std::ios::in ); ifsInputFile.good( ) )
ifsInputFile >> strFileString;
if ( strFileString.empty( ) )
return;
try {
// Parse saved variables
auto jBasicJson = nlohmann::json::parse( strFileString );
// Check is json parse failed
if ( jBasicJson.is_discarded( ) )
return;
/*for ( const auto &variable : jBasicJson ) {
auto a = variable[ "_Account_Login_" ].get< std::string >( );
auto b = variable[ "_Account_Password_" ].get< std::string >( );
auto c = variable[ "_Account_Privileges_" ].get< std::uint16_t >( );
nAccountsSystem::AccountSystem_t( a, b, c );
}*/
/*nAccountsSystem::AccountSystem_t{
jBasicJson[ "_Account_Login_" ].get< std::string >( ),
jBasicJson[ "_Account_Password_" ].get< std::string >( ),
jBasicJson[ "_Account_Privileges_" ].get< std::uint16_t >( )
};*/
std::cout << "Success shit" << std::endl;
} catch ( ... ) {}
Структура:
ps: тупые вопросы, ну по другому я не могу