[C++][Pistache-server] Wrong "toJson" and "fromJson" method generation - compilation failed
See original GitHub issueDescription
The C++ generated code does not compile because of the following errors:
- there is no matching function for ModelBase::toJson taking as argument std::map<std::string, std::vector<Point2D>>
- the generated code is calling “fromJson” method as it is a member of std::map type
- the generated code is calling a set method that is not generated
These error occur in model/Detections.cpp file.
Detection.h:
#include "ModelBase.h"
#include "BoundingRectangle.h"
#include <string>
#include "Point2D.h"
#include <map>
#include <vector>
namespace org {
namespace openapitools {
namespace server {
namespace model {
class Detection
: public ModelBase
{
public:
Detection();
virtual ~Detection();
nlohmann::json toJson() const override;
void fromJson(nlohmann::json& json) override;
std::map<std::string, std::vector<Point2D>>& getKeyPoints();
//setKeyPoints is missing
bool keyPointsIsSet() const;
void unsetKeyPoints();
protected:
std::map<std::string, std::vector<Point2D>> m_KeyPoints;
bool m_KeyPointsIsSet;
};
}
}
}
}
#endif /* Detection_H_ */
Detection.cpp:
nlohmann::json Detection::toJson() const
{
//
//
if(m_KeyPointsIsSet)
{
//this call
val["keyPoints"] = ModelBase::toJson(m_KeyPoints);
}
//
//
return val;
}
void Detection::fromJson(nlohmann::json& val)
{
//
//
if(val.find("keyPoints") != val.end())
{
if(!val["keyPoints"].is_null())
{
std::map<std::string, std::vector<Point2D>> newItem;
//and these 2 lines below
newItem.fromJson(val["keyPoints"]);
setKeyPoints( newItem );
}
}
}
openapi-generator version
3.2.0 (I cloned the latest master branch 2 days ago)
OpenAPI declaration file content or url
Command line used for generation
Inside cloned repository, after mvn clean package: java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate / -i deep-viss.json / -g cpp-pistache-server / -o …/openapi-pistache-server
Steps to reproduce
Note: Assuming Pistache is installed
- Go to output folder
- copy json.hpp (from https://github.com/nlohmann/json) to model folder
- mkdir build
- cd build
- cmake …
- make
Issue Analytics
- State:
- Created 5 years ago
- Reactions:1
- Comments:8 (4 by maintainers)
Top Results From Across the Web
[C++][Pistache-server] Wrong "fromJson" method generation ...
Description The C++ generated code does not compile and I don't think it is localized to the fromJson method but more "global".
Read more >SyntaxError: JSON.parse: bad parsing - JavaScript | MDN
The JavaScript exceptions thrown by JSON.parse() occur when string failed to be parsed as JSON.
Read more >JSON and serialization - Flutter documentation
This approach is covered in more detail in the code generation libraries section. Serializing JSON manually using dart:convert. Basic JSON serialization in ...
Read more >How to Deserialize a list of objects from json in flutter
The next step, is to turn that iterable of JSON objects into an instance of your object. This is done by creating fromJson...
Read more >How to Parse JSON in Dart/Flutter with Code Generation ...
Tired of writing JSON parsing code by hand? Here's how to automate this with code generation and the Freezed package.
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
I will take a look at this once I finish the other issue which is assigned to me.
I tested it with #1359 and it worked.