zoukankan      html  css  js  c++  java
  • CEF 支持JSON操作

    转载:https://blog.csdn.net/foruok/article/details/50687864(解析json)

    转载:https://blog.csdn.net/foruok/article/details/51132462(构建json)

    在CEF项目开发中避免不了要使用json格式的数据,为了解决对json的使用,一般都是引入第三方开源库JsonCpp、cJson等,问题是解决了;但这样会增加客户端的体积,查阅资料发现CEF的确强大,它支持对json的操作,如果不想引入第三方库,可以使用CEF操作JSON。

    Cef提供了JSON解析功能,在cef_parser.h文件内有三个JSON相关的方法:

    • CefParseJSON
    • CefParseJSONAndReturnError
    • CefWriteJSON

    1.CEF解析JSON

    void CMainFrameWnd::TestParseJson()
    {
        std::wstring wstrJson = _T("{");
        wstrJson += _T(""uid" : "chechenluoyang@163.com",");
        wstrJson += _T(""fileName" : "梅西.txt",");
        wstrJson += _T(""time" : "2017.07.29 10:55:22",");
        wstrJson += _T(""type" : "Libcurl HTTP POST JSON ",");
        wstrJson += _T(""authList" : "test"");
        wstrJson += _T("}");
    
        CefRefPtr<CefValue> jsonObject = CefParseJSON(wstrJson, JSON_PARSER_ALLOW_TRAILING_COMMAS);
    
        if (jsonObject->IsValid())
        {
            CefRefPtr<CefDictionaryValue> dict = jsonObject->GetDictionary();
            CefString strUid = dict->GetString("uid");//得到chechenluoyang@163.com
            CefString strFilename = dict->GetString("fileName");//得到梅西.txt
        }
    }

    注:因为我的工程属性设置的是Unicode编码,所以在用字符串拼接的时候用wstring来存储,不然中文会乱码。

    2.构建JSON

    void CMainFrameWnd::TestWriteJson()
    {
        CefRefPtr<CefDictionaryValue> pDict = CefDictionaryValue::Create();
    
        pDict->SetInt("id", 9527);
        pDict->SetString("name", _T("梅西"));
    
        CefRefPtr<CefValue> pValue = CefValue::Create();
    
        pValue->SetDictionary(pDict);
        std::wstring strJson = CefWriteJSON(pValue, JSON_WRITER_DEFAULT);
    }

    生成的JSON串:

    {
       "id":9527,
        "name":"梅西"
    }

    注:因为Unicode编码,json的key value都是CefString,要用宽字符设置,最后返回的json字符串也是CefString,也要用wstring保存,不然中文会乱码。

  • 相关阅读:
    WindRiver workbench 做操步骤
    发现pci设备
    pci驱动与硬件通信
    推荐一款pascal 语言的web 开发工具
    Basic4android v2.70 发布
    如何制作 Basic4android 的库文件
    GoGoGo,哦哦哦,我获奖了..微软的双肩笔记本包~~
    爽,买到返程票了!
    去掉微软认证的WINDOWS盗版标志
    大四才醒悟太迟了吗
  • 原文地址:https://www.cnblogs.com/chechen/p/10291562.html
Copyright © 2011-2022 走看看