更多API參考jsoncpp標頭檔
1 jsoncpp的api簡要說明
1,解析(json字串轉為對象)
std::string strDataJson;
Json::Reader JReader;
Json::Value JObject;
if (!JReader.parse(strDataJson, JObject))
{
cerr << "parse json error." << endl;
return bSuccess;
}
2,讀取
std::string strMsg = JRec["msg"].asString();
int nRetCode = JRec["ret"]..asInt();
Json::Value JList = JRec["data"]["list"];
int nSize = JList.size();
擷取錯誤資訊: JReader.getFormatedErrorMessages()
3,增加或修改
JRoot["stringdata"] = Json::Value("msg");
JRoot["intdata"] = Json::Value(10);
4,刪除
JValue.removeMember("toberemove");
5,對象轉為字串
Json::FastWriter fast_writer;
strJRecList = fast_writer.write(JRoot);
//格式化之後的json,有斷行符號分行符號
std::string strOut = JRoot.toStyledString();
轉自;http://my.oschina.net/chenleijava/blog/144312
2 詳細API
class JSONAPI_API JsonValue{typedef std::map<std::string, JsonValue*>InnerMap;typedef std::vector<JsonValue*>InnerVector;public:JsonValue();virtual ~JsonValue();public:void clear();//import/exportvoid parse(const char* jsonString);JsonString toString();JsonString toString_styled();void toFile(const char* filename);void toFile_styled(const char* filename);//setvoid operator=(JsonValue& jval);void operator=(char vInteger);void operator=(unsigned char vInteger);void operator=(short vInteger);void operator=(unsigned short vInteger);void operator=(long vInteger);void operator=(unsigned long vInteger);void operator=(int vInteger);void operator=(unsigned int vInteger);void operator=(__int64 vInteger);void operator=(unsigned __int64 vInteger);void operator=(float vReal);void operator=(double vReal);void operator=(bool vBoolean);void operator=(const char* vString);int append(JsonValue& jval);int append(char vInteger);int append(unsigned char vInteger);int append(short vInteger);int append(unsigned short vInteger);int append(long vInteger);int append(unsigned long vInteger);int append(int vInteger);int append(unsigned int vInteger);int append(__int64 vInteger);int append(unsigned __int64 vInteger);int append(float vReal);int append(double vReal);int append(bool vBoolean);int append(const char* vString);//getJsonValue& operator [](const char* name);JsonValue& operator [](unsigned int arrIdx0);//get final valuechargetChar();unsigned chargetUChar();shortgetShort();unsigned shortgetUShort();longgetLong();unsigned longgetULong();intgetInt();unsigned intgetUInt();__int64getInt64();unsigned __int64 getUInt64();boolgetBoolean();floatgetFloat();doublegetDouble();const char*getString();//checkbool isNull();bool isChar();bool isUChar();bool isShort();bool isUShort();bool isLong();bool isULong();bool isInt();bool isUInt();bool isInt64();bool isUInt64();bool isBoolean();bool isFloat();bool isDouble();bool isString();bool isObject();bool isArray();protected:ValueType m_valueType;union{__int64 m_integer;double m_real;bool m_boolean;char* m_string;InnerMap* m_kv;InnerVector* m_array;}m_v;protected:void setAsObject();void setAsArray();friend JValHelper;};