From f4bfad4cf3d7032f043f74c66644281cb15f7c48 Mon Sep 17 00:00:00 2001 From: Pascal Palenda <pascal.palenda@akustik.rwth-aachen.de> Date: Mon, 6 Sep 2021 15:59:16 +0200 Subject: [PATCH] Switched to nlohmann/json library --- src/ITAIIRUtils.cpp | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/ITAIIRUtils.cpp b/src/ITAIIRUtils.cpp index e102510..5c2cb62 100644 --- a/src/ITAIIRUtils.cpp +++ b/src/ITAIIRUtils.cpp @@ -4,41 +4,39 @@ #include <fstream> #ifdef WITH_JSON_SUPPORT -#include <libjson.h> +#include <nlohmann/json.hpp> #endif void ITADSP::ExportIIRCoefficientsToJSON( const std::string& sJSONFilePath, const CFilterCoefficients& oCoefficients ) { #ifdef WITH_JSON_SUPPORT + // TODO This has to be tested and checked, if the format is correct! + nlohmann::json jnCoefficients; + jnCoefficients["order"] = oCoefficients.uiOrder; - JSONNode jnCoefficients; - jnCoefficients.push_back( JSONNode( "order", oCoefficients.uiOrder ) ); + nlohmann::json jnNumerator; - JSONNode jnNumerator; - jnNumerator.set_name( "numerator" ); + for ( int i = 0; i < oCoefficients.vfNumerator.size ( ); i++ ) + jnNumerator["b" + std::to_string ( i )] = oCoefficients.vfNumerator[i]; - for( int i = 0; i < oCoefficients.vfNumerator.size(); i++ ) - jnNumerator.push_back( JSONNode( "b" + std::to_string( i ), oCoefficients.vfNumerator[ i ] ) ); + jnCoefficients["numerator"] = jnNumerator; - jnCoefficients.push_back( jnNumerator ); + nlohmann::json jnDenominator; - JSONNode jnDenominator; - jnDenominator.set_name( "denominator" ); - - for( int i = 0; i < oCoefficients.vfDenominator.size(); i++ ) - jnDenominator.push_back( JSONNode( "a" + std::to_string( i + 1 ), oCoefficients.vfDenominator[i] ) ); + for ( int i = 0; i < oCoefficients.vfDenominator.size ( ); i++ ) + jnDenominator["a" + std::to_string ( i + 1 )], oCoefficients.vfDenominator[i]; - jnCoefficients.push_back( jnDenominator ); + jnCoefficients["denominator"] = jnDenominator; - jnCoefficients.push_back(JSONNode("design_algorithm", oCoefficients.iDesignAlgorithm)); + jnCoefficients["design_algorithm"] = oCoefficients.iDesignAlgorithm; - jnCoefficients.push_back(JSONNode("is_ARMA", oCoefficients.bIsARMA)); + jnCoefficients["is_ARMA"] = oCoefficients.bIsARMA; std::ofstream fsOut( sJSONFilePath ); - fsOut << jnCoefficients.write_formatted(); + fsOut << jnCoefficients.dump ( ); fsOut.close(); #else -- GitLab