jsoncpp第二篇——API

來源:互聯網
上載者:User

更多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;};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.