diff --git a/src/core/geometry/qgscurvepolygon.cpp b/src/core/geometry/qgscurvepolygon.cpp index 30202bcb5a75..80efe59c2bbd 100644 --- a/src/core/geometry/qgscurvepolygon.cpp +++ b/src/core/geometry/qgscurvepolygon.cpp @@ -403,7 +403,7 @@ QDomElement QgsCurvePolygon::asGml3( QDomDocument &doc, int precision, const QSt json QgsCurvePolygon::asJsonObject( int precision ) const { - json coordinates { json::array( )}; + json coordinates( json::array( ) ); if ( exteriorRing() ) { std::unique_ptr< QgsLineString > exteriorLineString( exteriorRing()->curveToLine() ); diff --git a/src/core/geometry/qgsgeometrycollection.cpp b/src/core/geometry/qgsgeometrycollection.cpp index d5b5f5e04517..d81ede4fdee0 100644 --- a/src/core/geometry/qgsgeometrycollection.cpp +++ b/src/core/geometry/qgsgeometrycollection.cpp @@ -420,7 +420,7 @@ QDomElement QgsGeometryCollection::asGml3( QDomDocument &doc, int precision, con json QgsGeometryCollection::asJsonObject( int precision ) const { - json coordinates { json::array( ) }; + json coordinates( json::array( ) ); for ( const QgsAbstractGeometry *geom : qgis::as_const( mGeometries ) ) { coordinates.push_back( geom->asJsonObject( precision ) ); diff --git a/src/core/geometry/qgsgeometryutils.cpp b/src/core/geometry/qgsgeometryutils.cpp index 230fca2c2e40..ee17598aa320 100644 --- a/src/core/geometry/qgsgeometryutils.cpp +++ b/src/core/geometry/qgsgeometryutils.cpp @@ -1200,7 +1200,7 @@ QString QgsGeometryUtils::pointsToJSON( const QgsPointSequence &points, int prec json QgsGeometryUtils::pointsToJson( const QgsPointSequence &points, int precision ) { - json coordinates { json::array() }; + json coordinates( json::array() ); for ( const QgsPoint &p : points ) { if ( p.is3D() ) diff --git a/src/core/geometry/qgsmulticurve.cpp b/src/core/geometry/qgsmulticurve.cpp index da065b91f610..9157f88bbb15 100644 --- a/src/core/geometry/qgsmulticurve.cpp +++ b/src/core/geometry/qgsmulticurve.cpp @@ -113,7 +113,7 @@ QDomElement QgsMultiCurve::asGml3( QDomDocument &doc, int precision, const QStri json QgsMultiCurve::asJsonObject( int precision ) const { - json coordinates { json::array( ) }; + json coordinates( json::array( ) ); for ( const QgsAbstractGeometry *geom : qgis::as_const( mGeometries ) ) { if ( qgsgeometry_cast( geom ) ) diff --git a/src/core/geometry/qgsmultilinestring.cpp b/src/core/geometry/qgsmultilinestring.cpp index 5f969a049c6b..622b34ebff94 100644 --- a/src/core/geometry/qgsmultilinestring.cpp +++ b/src/core/geometry/qgsmultilinestring.cpp @@ -100,7 +100,7 @@ QDomElement QgsMultiLineString::asGml3( QDomDocument &doc, int precision, const json QgsMultiLineString::asJsonObject( int precision ) const { - json coordinates { json::array( ) }; + json coordinates( json::array( ) ); for ( const QgsAbstractGeometry *geom : mGeometries ) { if ( qgsgeometry_cast( geom ) ) diff --git a/src/core/geometry/qgsmultipolygon.cpp b/src/core/geometry/qgsmultipolygon.cpp index 5aca3e2948a7..156cb3c891db 100644 --- a/src/core/geometry/qgsmultipolygon.cpp +++ b/src/core/geometry/qgsmultipolygon.cpp @@ -101,12 +101,12 @@ QDomElement QgsMultiPolygon::asGml3( QDomDocument &doc, int precision, const QSt json QgsMultiPolygon::asJsonObject( int precision ) const { - json polygons { json::array( ) }; + json polygons( json::array( ) ); for ( const QgsAbstractGeometry *geom : qgis::as_const( mGeometries ) ) { - json coordinates { json::array( ) }; if ( qgsgeometry_cast( geom ) ) { + json coordinates( json::array( ) ); const QgsPolygon *polygon = static_cast( geom ); std::unique_ptr< QgsLineString > exteriorLineString( polygon->exteriorRing()->curveToLine() ); @@ -122,8 +122,8 @@ json QgsMultiPolygon::asJsonObject( int precision ) const interiorLineString->points( interiorPts ); coordinates.push_back( QgsGeometryUtils::pointsToJson( interiorPts, precision ) ); } + polygons.push_back( coordinates ); } - polygons.push_back( coordinates ); } return { diff --git a/src/core/geometry/qgsmultisurface.cpp b/src/core/geometry/qgsmultisurface.cpp index f186c4a5642e..a4e9ee3a1857 100644 --- a/src/core/geometry/qgsmultisurface.cpp +++ b/src/core/geometry/qgsmultisurface.cpp @@ -112,11 +112,12 @@ QDomElement QgsMultiSurface::asGml3( QDomDocument &doc, int precision, const QSt json QgsMultiSurface::asJsonObject( int precision ) const { - json coordinates { json::array( ) }; + json polygons( json::array( ) ); for ( const QgsAbstractGeometry *geom : qgis::as_const( mGeometries ) ) { if ( qgsgeometry_cast( geom ) ) { + json coordinates( json::array( ) ); std::unique_ptr< QgsPolygon >polygon( static_cast( geom )->surfaceToPolygon() ); std::unique_ptr< QgsLineString > exteriorLineString( polygon->exteriorRing()->curveToLine() ); QgsPointSequence exteriorPts; @@ -131,12 +132,13 @@ json QgsMultiSurface::asJsonObject( int precision ) const interiorLineString->points( interiorPts ); coordinates.push_back( QgsGeometryUtils::pointsToJson( interiorPts, precision ) ); } + polygons.push_back( coordinates ); } } return { { "type", "MultiPolygon" }, - { "coordinates", coordinates } + { "coordinates", polygons } }; } diff --git a/src/core/qgsjsonutils.cpp b/src/core/qgsjsonutils.cpp index 6b83129ecb24..1584bbba477a 100644 --- a/src/core/qgsjsonutils.cpp +++ b/src/core/qgsjsonutils.cpp @@ -319,7 +319,7 @@ QVariantList QgsJsonUtils::parseArray( const QString &json, QVariant::Type type QVariantList result; try { - const auto jObj { json::parse( json.toStdString() ) }; + const auto jObj( json::parse( json.toStdString() ) ); if ( ! jObj.is_array() ) { throw json::parse_error::create( 0, 0, QStringLiteral( "JSON value must be an array" ).toStdString() ); diff --git a/tests/src/core/testqgsgeometry.cpp b/tests/src/core/testqgsgeometry.cpp index 736002800f8c..bca32dc0ed75 100644 --- a/tests/src/core/testqgsgeometry.cpp +++ b/tests/src/core/testqgsgeometry.cpp @@ -13956,7 +13956,7 @@ void TestQgsGeometry::multiSurface() QGSCOMPAREGML( elemToString( QgsMultiSurface().asGml3( doc ) ), expectedGML3empty ); // as JSON - QString expectedSimpleJson( "{\"coordinates\":[[[7.0,17.0],[7.0,13.0],[3.0,13.0],[7.0,17.0]],[[27.0,37.0],[27.0,43.0],[43.0,43.0],[27.0,37.0]]],\"type\":\"MultiPolygon\"}" ); + QString expectedSimpleJson( "{\"coordinates\":[[[[7.0,17.0],[7.0,13.0],[3.0,13.0],[7.0,17.0]]],[[[27.0,37.0],[27.0,43.0],[43.0,43.0],[27.0,37.0]]]],\"type\":\"MultiPolygon\"}" ); res = exportC.asJson( 1 ); QCOMPARE( res, expectedSimpleJson ); @@ -13964,7 +13964,7 @@ void TestQgsGeometry::multiSurface() part.addInteriorRing( lineRing.clone() ); exportC.addGeometry( part.clone() ); - QString expectedJsonWithRings( "{\"coordinates\":[[[7.0,17.0],[7.0,13.0],[3.0,13.0],[7.0,17.0]],[[27.0,37.0],[27.0,43.0],[43.0,43.0],[27.0,37.0]],[[27.0,37.0],[27.0,43.0],[43.0,43.0],[27.0,37.0]],[[17.0,27.0],[17.0,28.0],[18.0,28.0],[17.0,27.0]]],\"type\":\"MultiPolygon\"}" ); + QString expectedJsonWithRings( "{\"coordinates\":[[[[7.0,17.0],[7.0,13.0],[3.0,13.0],[7.0,17.0]]],[[[27.0,37.0],[27.0,43.0],[43.0,43.0],[27.0,37.0]]],[[[27.0,37.0],[27.0,43.0],[43.0,43.0],[27.0,37.0]],[[17.0,27.0],[17.0,28.0],[18.0,28.0],[17.0,27.0]]]],\"type\":\"MultiPolygon\"}" ); res = exportC.asJson( 1 ); QCOMPARE( res, expectedJsonWithRings ); @@ -13974,7 +13974,7 @@ void TestQgsGeometry::multiSurface() part.setExteriorRing( lineRing.clone() ); exportFloat.addGeometry( part.clone() ); - QString expectedJsonPrec3( QStringLiteral( "{\"coordinates\":[[[0.123,0.123],[0.123,1.234],[1.234,1.234],[0.123,0.123]]],\"type\":\"MultiPolygon\"}" ) ); + QString expectedJsonPrec3( QStringLiteral( "{\"coordinates\":[[[[0.123,0.123],[0.123,1.234],[1.234,1.234],[0.123,0.123]]]],\"type\":\"MultiPolygon\"}" ) ); res = exportFloat.asJson( 3 ); QCOMPARE( res, expectedJsonPrec3 ); diff --git a/tests/src/core/testqgsjsonutils.cpp b/tests/src/core/testqgsjsonutils.cpp index 2d3bfc87510a..34d415f31267 100644 --- a/tests/src/core/testqgsjsonutils.cpp +++ b/tests/src/core/testqgsjsonutils.cpp @@ -139,7 +139,7 @@ void TestQgsJsonUtils::testDoubleList() void TestQgsJsonUtils::testExportAttributesJson_data() { - QTest::addColumn( "JsonAlgs" ); + QTest::addColumn( "jsonAlg" ); QTest::newRow( "Use json" ) << JsonAlgs::Json; QTest::newRow( "Use old string concat" ) << JsonAlgs::String; } @@ -147,17 +147,17 @@ void TestQgsJsonUtils::testExportAttributesJson_data() void TestQgsJsonUtils::testExportAttributesJson() { - QFETCH( enum JsonAlgs, JsonAlgs ); + QFETCH( enum JsonAlgs, jsonAlg ); QgsVectorLayer vl { QStringLiteral( "Point?field=fldtxt:string&field=fldint:integer&field=flddbl:double" ), QStringLiteral( "mem" ), QStringLiteral( "memory" ) }; QgsFeature feature { vl.fields() }; feature.setAttributes( QgsAttributes() << QStringLiteral( "a value" ) << 1 << 2.0 ); - if ( JsonAlgs == JsonAlgs::Json ) // 0.0022 + if ( jsonAlg == JsonAlgs::Json ) // 0.0022 { QBENCHMARK { - json j { QgsJsonUtils::exportAttributesToJsonObject( feature, &vl ) }; + json j( QgsJsonUtils::exportAttributesToJsonObject( feature, &vl ) ); QCOMPARE( QString::fromStdString( j.dump() ), QStringLiteral( R"raw({"flddbl":2.0,"fldint":1,"fldtxt":"a value"})raw" ) ); } } @@ -188,7 +188,7 @@ void TestQgsJsonUtils::testExportFeatureJson() ",\"id\":0,\"properties\":{\"flddbl\":2.0,\"fldint\":1,\"fldtxt\":\"a value\"}" ",\"type\":\"Feature\"}" ) }; - const auto j { exporter.exportFeatureToJsonObject( feature ) }; + const auto j( exporter.exportFeatureToJsonObject( feature ) ); QCOMPARE( QString::fromStdString( j.dump() ), expectedJson ); const auto json { exporter.exportFeature( feature ) }; QCOMPARE( json, expectedJson );