{\r
readArray(childProperties, property);\r
}\r
+ else if (attType == "object")\r
+ {\r
+ readObject(childProperties, property);\r
+ }\r
}\r
\r
void JsonSchema::readString(cJSON *childProperties, PropertiesPtr &property)\r
}\r
}\r
\r
+ void JsonSchema::readObject(cJSON *childProperties, PropertiesPtr &property)\r
+ {\r
+ property->setTypeString("object");\r
+\r
+ cJSON *subProperties = cJSON_GetObjectItem(childProperties, "properties");\r
+ cJSON *itemRequiredValues = cJSON_GetObjectItem(childProperties, "required");\r
+ if (subProperties)\r
+ {\r
+ cJSON *childProperties = subProperties->child;\r
+ std::vector<Properties> propertyVector;\r
+ while (childProperties)\r
+ {\r
+ std::string attName = childProperties->string;\r
+ PropertiesPtr prop = std::make_shared<Properties>(attName);\r
+ readProp(childProperties, attName);\r
+ propertyVector.push_back(*prop);\r
+ childProperties = childProperties->next;\r
+ }\r
+ property->setValue(propertyVector);\r
+ if (itemRequiredValues)\r
+ {\r
+ int size = cJSON_GetArraySize(itemRequiredValues);\r
+ int index = 0;\r
+ do\r
+ {\r
+ property->setRequiredValue(cJSON_GetArrayItem(itemRequiredValues, index)->valuestring);\r
+ }\r
+ while ( ++index < size);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ JsonParameters param;\r
+\r
+ cJSON *itemAllOf = cJSON_GetObjectItem(childProperties, "allOf");\r
+ if (itemAllOf)\r
+ {\r
+ readAllOf(itemAllOf , param);\r
+ }\r
+ cJSON *itemReference = cJSON_GetObjectItem(childProperties, "$ref");\r
+ if (itemReference)\r
+ {\r
+ readJsonRef(itemReference , param);\r
+ }\r
+\r
+ if (param.getType() == "object")\r
+ {\r
+ std::vector<Properties> propertyVector;\r
+ for (auto prop : param.getProperties())\r
+ {\r
+ propertyVector.push_back(*(prop.second));\r
+ }\r
+ property->setValue(propertyVector);\r
+\r
+ for (auto req : param.getRequired())\r
+ {\r
+ property->setRequiredValue(req);\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
void JsonSchema::readFile(std::string &fileName , JsonParameters ¶m)\r
{\r
cJSON *json = m_includeResolver->readToJson(fileName);\r
void readDouble( cJSON *childProperties, PropertiesPtr &property);\r
void readArray( cJSON *childProperties, PropertiesPtr &property);\r
void readItems(cJSON *item, PropertiesPtr &property);\r
+ void readObject(cJSON *childProperties, PropertiesPtr &property);\r
\r
void readFile(std::string &fileName , JsonParameters ¶m);\r
void readFile(std::string &fileName , std::string &defName , JsonParameters ¶m);\r