Cef提供了JSON解析功能,在cef_parser.h文件內有三個JSON相關的方法:html
以最簡單的CefParseJSON方法來搞個小演示樣例演示下使用方法。函數原型例如如下:json
CefRefPtr<CefValue> CefParseJSON(const CefString& json_string, cef_json_parser_options_t options);
第一個參數是帶解析的json串,類型是CefString。實際使用時傳遞char*或std::string都可以。CefString可以本身主動依據它們構造。api
第二個是枚舉型的選項(定義在cef_types.h內)。有JSON_PARSER_RFC和JSON_PARSER_ALLOW_TRAILING_COMMAS兩個值。後面這個枚舉值的意思是贊成JSON串最後有一個逗號(以逗號結尾的JSON字符串可能會被標準解析器以爲不合規)。markdown
返回值是CefValue。CefValue是一個通用類型,定義在cef_values.h中,可以表明布爾、整型、雙精度浮點數、字符串、二進制、字典、列表這幾種類型(在cef_types.h中定義了枚舉類型cef_value_type_t)。函數
CefValue的GetType()方法可以返回實際的數據類型。而後還有GetBool、GetString、GetInt、GetDictionary等用來返回特定類型的數據。post
好了,有這些背景。就可以來解析JSON串了。.net
演示樣例JSON串(一個簡單的Dictionary)例如如下:code
{ "result":0, "token":"abc-k-xxx-poi", "id":821251852 }
解析代碼片斷例如如下:htm
... CefRefPtr<CefValue> jsonObject = CefParseJSON(strJoinKey, JSON_PARSER_ALLOW_TRAILING_COMMAS); if (jsonObject->IsValid()) { CefRefPtr<CefDictionaryValue> dict = jsonObject->GetDictionary(); CefString token = dict->GetString("token"); int id = dict->GetInt("id"); int result = dict->GetInt("result"); }
就這樣吧。blog
其它參考文章詳見個人專欄:【CEF與PPAPI開發】。