diff --git a/src/openalpr/alpr.cpp b/src/openalpr/alpr.cpp index c42b101..5ab89ea 100644 --- a/src/openalpr/alpr.cpp +++ b/src/openalpr/alpr.cpp @@ -82,6 +82,10 @@ namespace alpr { return AlprImpl::toJson(results); } + std::string Alpr::toJson( AlprPlateResult result ) + { + return AlprImpl::toJson(result); + } AlprResults Alpr::fromJson(std::string json) { return AlprImpl::fromJson(json); diff --git a/src/openalpr/alpr.h b/src/openalpr/alpr.h index ac6fd43..b08913a 100644 --- a/src/openalpr/alpr.h +++ b/src/openalpr/alpr.h @@ -163,6 +163,7 @@ namespace alpr static std::string toJson(const AlprResults results); + static std::string toJson(const AlprPlateResult result); static AlprResults fromJson(std::string json); bool isLoaded(); diff --git a/src/openalpr/alpr_impl.cpp b/src/openalpr/alpr_impl.cpp index 338b453..024bb5a 100644 --- a/src/openalpr/alpr_impl.cpp +++ b/src/openalpr/alpr_impl.cpp @@ -542,6 +542,21 @@ namespace alpr + std::string AlprImpl::toJson( const AlprPlateResult result ) + { + cJSON *resultObj = createJsonObj( &result ); + + char *out; + out=cJSON_PrintUnformatted(resultObj); + + cJSON_Delete(resultObj); + + string response(out); + + free(out); + + return response; + } cJSON* AlprImpl::createJsonObj(const AlprPlateResult* result) { cJSON *root, *coords, *candidates; diff --git a/src/openalpr/alpr_impl.h b/src/openalpr/alpr_impl.h index d098933..a849168 100644 --- a/src/openalpr/alpr_impl.h +++ b/src/openalpr/alpr_impl.h @@ -99,6 +99,8 @@ namespace alpr void setDefaultRegion(std::string region); static std::string toJson( const AlprResults results ); + static std::string toJson( const AlprPlateResult result ); + static AlprResults fromJson(std::string json); static std::string getVersion();