diff --git a/src/ITAIIRUtils.cpp b/src/ITAIIRUtils.cpp
index e1025101ea36f73eb5211632114e0e789620c607..5c2cb62908787dde59a237432200c2ae2e022139 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