C + + JSON 의 좋 은 글 해석

5602 단어 json
   C++  JSON      
    JSON    :JavaScript Object Notation,    ,JSON     Javascript   ,JSON      :JSON             。        JSON     ,        C++     JSON。  JSON      ,   JSON  :http://www.json.org。http://json.org/json-zh.html
 、      JSON C++ 
             jsoncpp   JSON。jsoncpp      C++ JSON   。 JSON       。     :http://sourceforge.net/projects/jsoncpp。     jsoncpp   :0.5.0。
 、jsoncpp Windows    
         ,           ,                    、            [1]。
jsconcpp  JSON          include/json、src/lib_json 。  jsoncpp     ,        ,                      ,             [2]。
jsoncpp         ,            ,  makefiles/vs71/jsoncpp.sln       (     VS2003    ,       VS2005      )。
 、jsoncpp     
    jsoncpp         class:Value、Reader、Writer。jsoncpp     、    namespace Json ,  json.h  。
    Json::Value    ANSI      ,  C++    Unicode   ,     Adapt    。 
1、Value 
    Json::Value jsoncpp    、     ,           ,jsoncpp         Json::ValueType   。
     Json::Value :
Json::Value json_temp;      //    ,       
json_temp["name"] = Json::Value("huchao");
json_temp["age"] = Json::Value(26);
Json::Value root;  //    json  
root["key_string"] = Json::Value("value_string");         //    Key(  :key_string),      :"value_string"。 
root["key_number"] = Json::Value(12345);            //    Key(  :key_number),    :12345。 
root["key_boolean"] = Json::Value(false);              //    Key(  :key_boolean),  bool :false。
root["key_double"] = Json::Value(12.345);            //    Key(  :key_double),  double :12.345。
root["key_object"] = Json_temp;                           //    Key(  :key_object),  json::Value   。
root["key_array"].append("array_string");             //    Key(  :key_array),     ,            :"array_string"。
root["key_array"].append(1234);                           //   key_array  ,         :1234。
Json::ValueType type = root.type();                       //  root   ,   objectValue  。
 : C++  ,JavaScript           ,  jsoncpp   。
                   json   ,  jsoncpp        ,       、  json  、  json   ,      ,       。
2、Writer
 
    Json::Value     ,                 ,  json  ,  Writer   。
Jsoncpp Json::Writer       ,       。      Json::Writer   :Json::FastWriter、Json::StyledWriter、Json::StyledStreamWriter。
    , Json::FastWriter   json      ,       。
Json::FastWriter fast_writer;
std::cout << fast_writer.write(root) << std::endl;
 
{"key_array":["array_string",1234],"key_boolean":false,"key_double":12.3450,"key_number":12345,"key_object":{"age":26,"name":"huchao"},"key_string":"value_string"}
      , Json::StyledWriter      json,       Json::StyledWriter       。
Json::StyledWriter styled_writer;
std::cout << styled_writer.write(root) << std::endl;
{"key_array" : [ "array_string", 1234 ], "key_boolean" : false,"key_double" : 12.3450, "key_number" : 12345, "key_object" : { "age" : 26,  "name" : "huchao"}, "key_string" : "value_string" }
3、Reader
    Json::Reader      ,     ,          Json::Value   ,            。
  Json::Reader reader;
json::Value json_object;
  const char* json_document = "{\"age\" : 26,\"name\" : \"huchao\"}";
  if (!reader.parse(json_document, json_object))
    return 0;
  std::cout << json_object["name"] << std::endl;
  std::cout << json_object["age"] << std::endl;
 
 "huchao" 
26
 
  ,          json   。
 -------------------------------------- 
[1]:                       ,        、      ,          ,     。
[2]:             、       ,    VS        ,   Project --> Properties          。
    :http://hi.baidu.com/awz_tiger/blog/item/d165970b4ca967fc36d122a4.html
           :http://blog.csdn.net/vagrxie/article/details/5754179

좋은 웹페이지 즐겨찾기