void JSONElement::append(const JSONElement& element) { if(!_json) { return; } switch(element.getType()) { case cJSON_False: cJSON_AddFalseToObject(_json, element.getName().mb_str(wxConvUTF8).data()); break; case cJSON_True: cJSON_AddTrueToObject(_json, element.getName().mb_str(wxConvUTF8).data()); break; case cJSON_NULL: cJSON_AddNullToObject(_json, element.getName().mb_str(wxConvUTF8).data()); break; case cJSON_Number: cJSON_AddNumberToObject(_json, element.getName().mb_str(wxConvUTF8).data(), element.getValue().GetLong()); break; case cJSON_String: cJSON_AddStringToObject(_json, element.getName().mb_str(wxConvUTF8).data(), element.getValue().GetString().mb_str(wxConvUTF8).data()); break; case cJSON_Array: case cJSON_Object: cJSON_AddItemToObject(_json, element.getName().mb_str(wxConvUTF8).data(), element._json); break; } }
string JSONUtil::getDocumentStr(const JSONElement& doc) { string jsonText; if(doc.getType()==JSONElement::JSON_OBJECT) jsonText += "{"; else jsonText += "["; if(doc.hasChildren()) { for (int var = 0; var < (int)doc.getChildren().size(); ++var) { JSONElement* child = doc.getChildren().at(var); if(doc.getType()==JSONElement::JSON_OBJECT) jsonText += "\"" + child->getName() + "\":"; if(child->getType()==JSONElement::JSON_OBJECT || child->getType()==JSONElement::JSON_ARRAY) { jsonText += getDocumentStr(*child); } else { if(child->getType()==JSONElement::JSON_STRING) jsonText += "\"" + child->getValue() + "\""; else jsonText += child->getValue(); } if(var!=(int)doc.getChildren().size()-1) { jsonText += ", "; } } } if(doc.getType()==JSONElement::JSON_OBJECT) jsonText += "}"; else jsonText += "]"; return jsonText; }