日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rapidjson 的格式检查

發布時間:2024/3/24 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rapidjson 的格式检查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用了一段時間rapidjson 庫,經常會遇到程序退出(crashed)的現象,主要是沒有做好解析過程中的出錯處理。本文談談這方面的問題。

parse 后判是否出錯

使用HasParseError()方法,例如:

#include "rapidjson/document.h"

#include "rapidjson/error/en.h"

?

Document d;

d.Parse(json);

if (d.HasParseError()) {

??? fprintf(stderr, "\nError(offset %u): %s\n",

??????? (unsigned)d.GetErrorOffset(),

?????? ?GetParseError_En(d.GetParseError()));

??? // ...

}

?

取值先判類型,

在 GetX 之前,要判斷IsX

例如

?if(d[“id”].isInt())

???? int id=? d[“id”].GetInt();

取元素先判是否存在

使用hasmember()

例如:

if (d.HasMember(“id”)

{

?if(d[“id”].isInt())

???? int id=? d[“id”].GetInt();

}

?

?

對象的判斷(IsObject() )

例如:

{“name”:”david”}sdsd

這樣的字符串

使用HasParseError()方法無發查出錯誤,程序直接崩潰!

要 req.IsObject() 來判斷字符串是否是一個完整的對象。

要做出一個萬無一失的檢查程序還比較麻煩的。

?

總結

以上是生活随笔為你收集整理的rapidjson 的格式检查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。