property_tree可以解析ini,xml,json,info等格式的文本
以下示例是解析json格式的文本

#include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    #include <string>
    #include <sstream>
    #include <boost/property_tree/ptree.hpp>
    #include <boost/property_tree/json_parser.hpp>
    #include <time.h>
     
    using namespace std;
    using namespace boost::property_tree;
     
     
    const string file_path = "c:\\test.txt";
     
    void write_json_data_into_file(void)
    {
        printf("%s\n","write json data");
     
        boost::property_tree::ptree root, items;
     
        boost::property_tree::ptree item1;
        item1.put("ID","1");
        item1.put("Name","wang");
        items.push_back(std::make_pair("1",item1));
     
        boost::property_tree::ptree item2;
        item2.put("ID","2");
        item2.put("Name","zhang");
        items.push_back(std::make_pair("2",item2));
     
        root.put_child("users",items);
        boost::property_tree::write_json(file_path,root);
    }
     
    void read_json_data_from_file(void)
    {
        printf("%s\n","read json data");
        boost::property_tree::ptree root;
        boost::property_tree::ptree items;
        boost::property_tree::read_json<boost::property_tree::ptree>(file_path,root);
     
        items = root.get_child("users");
        for(boost::property_tree::ptree::iterator it=items.begin(); it != items.end(); ++it)
        {
            string key=it->first;//key ID
            string ID=it->second.get<string>("ID");
            string Name=it->second.get<string>("Name");
            cout<<"key: "<<key.c_str()<<'\t';
            printf("ID: %s    Name: %s",ID.c_str(), Name.c_str());
            cout<<endl;
            cout<<"ID:"<<ID<<'\t'<<"Name:"<<Name<<endl;
        }
        cout<<"success"<<endl;
    }
     
    void write_json_data_into_string(void)
    {
        boost::property_tree::ptree item;
        item.put("a","2");
        std::stringstream is;
        boost::property_tree::write_json(is,item);
        std::string s = is.str();
        cout<<"json s:"<<s<<endl;
    }
     
    void read_json_data_from_string(void)
    {
        /*
            C++ 中 字符串形式的json串 需要使用 \ 转义 双引号
        */
        std::string str_json = "{\"count\":10,\"people\":[{ \"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\": \"aaaa\" },{ \"firstName\": \"Jason\", \"lastName\":\"Hunter\", \"email\": \"bbbb\"},{ \"firstName\": \"Elliotte\", \"lastName\":\"Harold\", \"email\": \"cccc\" }]}";
        std::stringstream str_stream(str_json);
        boost::property_tree::ptree root;
        boost::property_tree::read_json(str_stream,root);
        root.put("upid","001");
     
        // 插入一个数组
        boost::property_tree::ptree exif_array;
        boost::property_tree::ptree array1, array2, array3;
        array1.put("Make", "NIKON");
        array2.put("DateTime", "2011:05:31 06:47:09");
        array3.put("Software", "Ver.1.01");
     
        //   exif_array.push_back(std::make_pair("Make", "NIKON"));
        //   exif_array.push_back(std::make_pair("DateTime", "2011:05:31 06:47:09"));
        //   exif_array.push_back(std::make_pair("Software", "Ver.1.01"));
     
        exif_array.push_back(std::make_pair("", array1));
        exif_array.push_back(std::make_pair("", array2));
        exif_array.push_back(std::make_pair("", array3));
     
        root.put_child("exifs", exif_array);
        std::stringstream str_stream_temp;
        boost::property_tree::write_json(str_stream_temp, root);
        //write_json(str_stream_temp, root);
        std::string str = str_stream_temp.str();
        cout<<str<<endl;
    }
     
     
    void testMsg(void)
    {
        string str_json = "{\"TEST\":\"\",\"MSG\":\"130\",\"TKT\":[{\"DTYP\":\"T\",\"STOT\":\"1\",\"SNUM\":\"1\",\"CPN\":[{\"CNBR\":\"1\",\"DDAT\":\"090117\",\"DTME\":\"1205\",\"ADAT\":\"090117\",\"ATME\":\"1340\",\"ORIG\":\"TSA\",\"DEST\":\"PVG\",\"ALC1\":\"FM\",\"FLTN\":\"802\",\"CLAS\":\"Y\",\"FSTN\":\"OK\",\"FBAS\":\"Y\",\"BAGA\":\"20K\"}]}]}";
        std::stringstream str_stream(str_json);
        boost::property_tree::ptree root;
        boost::property_tree::read_json(str_stream,root);
        boost::property_tree::ptree::iterator root_it = root.begin();
        for(; root_it != root.end(); ++root_it)
        {
            string key = root_it->first;
            if("TKT" == key)
            {
                boost::property_tree::ptree tkt_node = root.get_child(key);
                boost::property_tree::ptree::iterator tkt_node_it = tkt_node.begin();
                for(; tkt_node_it != tkt_node.end(); ++tkt_node_it)
                {
                    boost::property_tree::ptree tkt = tkt_node_it->second;
                    boost::property_tree::ptree::iterator tkt_it = tkt.begin();
                    for(; tkt_it != tkt.end(); ++tkt_it)
                    {
                        string tkt_key = tkt_it->first;
                        if("CPN" == tkt_key)
                        {
                            boost::property_tree::ptree cpn_node = tkt.get_child(tkt_key);
                            boost::property_tree::ptree::iterator cpn_node_it = cpn_node.begin();
                            for(; cpn_node_it != cpn_node.end(); ++cpn_node_it)
                            {
                                boost::property_tree::ptree cpn = cpn_node_it->second;
                                boost::property_tree::ptree::iterator cpn_it = cpn.begin();
                                for(; cpn_it != cpn.end();++cpn_it)
                                {
                                    string cpn_key = cpn_it->first;
                                    string cpn_val = cpn.get<string>(cpn_key);
                                    cout<<cpn_key<<":"<<cpn_val<<endl;
                                }
                            }
                        }
                        else
                        {
                            string tkt_val = tkt.get<string>(tkt_key);
                            cout << tkt_key << ":"<<tkt_val<<endl;
                        }
                    }
                }
            }
            else
            {
                string val = root.get<string>(key);
                cout << key <<":"<< val <<endl;
                //Sleep(1000);
            }
     
        }
    }
     
    void bianli_json(void)
    {
        string json_string="{\"-f\": \"/usr/reservedfff_dir\", \"-s\": \"/usr/reservedddd_dir\"}";
     
        string str_head;
        string str_node_val;
        boost::property_tree::ptree pt,p1,p2;
     
        stringstream stream(json_string);
        try
        {
            boost::property_tree::read_json<boost::property_tree::ptree>(stream, pt);
            cout<<"parsing ok\n"<<endl;
            for (boost::property_tree::ptree::iterator ita = pt.begin(); ita != pt.end(); ++ita)
            {
                cout<<"first:"<<ita->first<<endl;
                str_node_val = pt.get<string>(ita->first);
                cout<<str_node_val<<endl;
            }
        }
        catch(std::runtime_error& e)
        {
            std::cout<<e.what()<<endl;
        }
    }
     
    void test(void)
    {
        string str_json = "{\"TEST\":\"\",\"MSG\":\"130\",\"TKT\":[{\"DTYP\":\"T\",\"STOT\":\"1\",\"SNUM\":\"1\",\"CPN\":[{\"CNBR\":\"1\",\"DDAT\":\"090117\",\"DTME\":\"1205\",\"ADAT\":\"090117\",\"ATME\":\"1340\",\"ORIG\":\"TSA\",\"DEST\":\"PVG\",\"ALC1\":\"FM\",\"FLTN\":\"802\",\"CLAS\":\"Y\",\"FSTN\":\"OK\",\"FBAS\":\"Y\",\"BAGA\":\"20K\"}]}]}";
        std::stringstream str_stream(str_json);
        boost::property_tree::ptree root;
        boost::property_tree::read_json(str_stream,root);
     
        boost::property_tree::ptree tkt = root.get_child("TKT");
        stringstream tkt_stream;
        boost::property_tree::write_json(tkt_stream, tkt);
        cout<<tkt_stream.str()<<endl; //通过打印可以看到 first 为空
     
        for(boost::property_tree::ptree::iterator it = tkt.begin(); it!=tkt.end();++it)
        {
            boost::property_tree::ptree inner = it->second; //first为空
            //string DTYP_val = inner.get<string>("DTYP");
            //cout << "DTYP" <<":"<< DTYP_val<<endl;
     
            boost::property_tree::ptree::iterator it_tkt = inner.begin();
            for(; it_tkt != inner.end(); ++it_tkt)
            {
                string innet_key = it_tkt->first;
                cout<<innet_key<<":"<<inner.get<string>(innet_key)<<endl;
            }
            break;
        }
     
        //    boost::property_tree::ptree pt,pptt,ttt;
        //    string s = "{\"data\":[{\"id\":1,\"name\":\"chen\"},{\"id\":2,\"name\":\"zhang\"}]}";
        //    stringstream stream(s);
        //    read_json(stream, pt);
     
        //    pptt = pt.get_child("data");
        //    for (boost::property_tree::ptree::iterator it = pptt.begin(); it != pptt.end(); ++it)
        //    {
        //        ttt = it->second; //first为空
        //        cout<<"id="<<ttt.get<string>("id")<<endl;
        //        cout<<"name="<<ttt.get<string>("name")<<endl;
        //    }
    }
     
    void parseMsg_1(void)
    {
        string msg_str = "{\"MSG\":\"130\",\"CRSC\":\"MU\",\"CRSL\":\"BJS\",\"TAID\":\"08692057\",\"IHID\":\"PEK112\",\"ORGT\":\"A\",\"CRSN\":\"9995\",\"IHIB\":\"PEK112\",\"IDTP\":\"B\",\"PNR1\":\"NYFY37\",\"PNR2\":\"MU\",\"SURN\":\"zhang\",\"GIVN\":\"san\",\"FMID\":\"PPG19739941\",\"DTIS\":\"030117\",\"JORG\":\"TPE\",\"JDST\":\"MAD\",\"FAMT\":\"1560.00\",\"FCUR\":\"CNY\",\"TAMT\":\"1660.00\",\"TCUR\":\"CNY\",\"FANF\":\"H/1560.00/CNY+G/00:00/CNY\",\"FOPF\":\"CC\",\"TAXF\":\"T/CNY/50.00/CN+T/CNY/50.00/YQ\",\"FACF\":\"M/09JAN17TSA FM PVG MU JFK/-GRU JJ MAD1560.00CNY1560.00END\",\"TKT\":[{\"DTYP\":\"T\",\"STOT\":\"1\",\"SNUM\":\"1\",\"CPN\":[{\"CNBR\":\"1\",\"DDAT\":\"090117\",\"DTME\":\"1205\",\"ADAT\":\"090117\",\"ATME\":\"1340\",\"ORIG\":\"TSA\",\"DEST\":\"PVG\",\"ALC1\":\"FM\",\"FLTN\":\"802\",\"CLAS\":\"Y\",\"FSTN\":\"OK\",\"FBAS\":\"Y\",\"BAGA\":\"20K\"},{\"CNBR\":\"1\",\"DDAT\":\"090117\",\"DTME\":\"1205\",\"ADAT\":\"090117\",\"ATME\":\"1340\",\"ORIG\":\"TSA\",\"DEST\":\"PVG\",\"ALC1\":\"FM\",\"FLTN\":\"802\",\"CLAS\":\"Y\",\"FSTN\":\"OK\",\"FBAS\":\"Y\",\"BAGA\":\"20K\"}]},{\"DTYP\":\"T\",\"STOT\":\"1\",\"SNUM\":\"1\",\"CPN\":[{\"CNBR\":\"1\",\"DDAT\":\"090117\",\"DTME\":\"1205\",\"ADAT\":\"090117\",\"ATME\":\"1340\",\"ORIG\":\"TSA\",\"DEST\":\"PVG\",\"ALC1\":\"FM\",\"FLTN\":\"802\",\"CLAS\":\"Y\",\"FSTN\":\"OK\",\"FBAS\":\"Y\",\"BAGA\":\"20K\"}]}]}";
        stringstream msg_ss(msg_str);
        boost::property_tree::ptree msg;
        boost::property_tree::read_json(msg_ss, msg);
        boost::property_tree::ptree::iterator msg_it = msg.begin();
        for(; msg_it != msg.end(); ++msg_it)
        {
            string msg_key = msg_it->first;
            string val = "";
            if("TKT" == msg_key)
            {
                boost::property_tree::ptree tkt_node = msg.get_child(msg_key);
                boost::property_tree::ptree::iterator tkt_node_it = tkt_node.begin();
                for(; tkt_node_it != tkt_node.end(); ++tkt_node_it)
                {
                    boost::property_tree::ptree tkt = tkt_node_it->second;
                    boost::property_tree::ptree::iterator tkt_it = tkt.begin();
                    for(; tkt_it != tkt.end(); ++tkt_it)
                    {
                        string tkt_key = tkt_it->first;
                        if("CPN" == tkt_key)
                        {
                            boost::property_tree::ptree cpn_node = tkt.get_child(tkt_key);
                            boost::property_tree::ptree::iterator cpn_node_it = cpn_node.begin();
                            for(; cpn_node_it != cpn_node.end(); ++cpn_node_it)
                            {
                                boost::property_tree::ptree cpn = cpn_node_it->second;
                                boost::property_tree::ptree::iterator cpn_it = cpn.begin();
                                for(; cpn_it != cpn.end(); ++cpn_it)
                                {
                                    string cpn_key = cpn_it->first;
                                    val = cpn.get<string>(cpn_key);
                                    cout << cpn_key << ":" << val <<endl;
                                }
                            }
                        }
                        else
                        {
                            val = tkt.get<string>(tkt_key);
                            cout<< tkt_key << ":" << val <<endl;
                        }
                    }
                }
            }
            else
            {
                val = msg.get<string>(msg_key);
                cout<< msg_key<<":"<<val<<endl;
            }
        }
     
    }
     
    void parseMsg(void)
    {
        string msg_str = "{\"MSG\":\"MSG\",\"CRSC\":\"CRSC\",\"CRSL\":\"CRSL\",\"TAID\":\"TAID\",\"IHID\":\"IHID\",\"ORGT\":\"ORGT\",\"CRSN\":\"CRSN\",\"IHIB\":\"IHIB\",\"IDTP\":\"IDTP\",\"PNR1\":\"PNR1\",\"PNR2\":\"PNR2\",\"TIF\":[{\"SURN\":\"SURN\",\"GIVN\":\"GIVN\",\"FMID\":\"FMID\",\"INFP\":\"INFP\",\"UMCH\":\"UMCH\",\"JORG\":\"JORG\",\"JDST\":\"JDST\",\"FAMT\":\"FAMT\",\"FCUR\":\"FCUR\",\"TAMT\":\"TAMT\",\"TCUR\":\"TCUR\",\"FANF\":\"FANF\",\"FOPF\":\"FOPF\",\"TAXF\":\"TAXF\",\"TKT\":[{\"TKNB\":\"TKNB\",\"STOT\":\"STOT\",\"SNUM\":\"SNUM\",\"CPN\":[{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"},{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"}]},{\"TKNB\":\"TKNB\",\"STOT\":\"STOT\",\"SNUM\":\"SNUM\",\"CPN\":[{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"},{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"}]}]},{\"SURN\":\"SURN\",\"GIVN\":\"GIVN\",\"FMID\":\"FMID\",\"INFP\":\"INFP\",\"UMCH\":\"UMCH\",\"JORG\":\"JORG\",\"JDST\":\"JDST\",\"FAMT\":\"FAMT\",\"FCUR\":\"FCUR\",\"TAMT\":\"TAMT\",\"TCUR\":\"TCUR\",\"FANF\":\"FANF\",\"FOPF\":\"FOPF\",\"TAXF\":\"TAXF\",\"TKT\":[{\"TKNB\":\"TKNB\",\"STOT\":\"STOT\",\"SNUM\":\"SNUM\",\"CPN\":[{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"},{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"}]},{\"TKNB\":\"TKNB\",\"STOT\":\"STOT\",\"SNUM\":\"SNUM\",\"CPN\":[{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"},{\"CNBR\":\"CNBR\",\"DDAT\":\"DDAT\",\"DTME\":\"DTME\",\"ADAT\":\"ADAT\",\"ATME\":\"ATME\",\"ORIG\":\"ORIG\",\"DEST\":\"DEST\",\"ALC1\":\"ALC1\",\"FLTN\":\"FLTN\",\"CLAS\":\"CLAS\",\"FSTN\":\"FSTN\",\"FBAS\":\"FBAS\",\"BAGA\":\"BAGA\"}]}]}]}";
        stringstream msg_ss(msg_str);
        ptree msg;
        read_json(msg_ss, msg);
        string val = "";
        for(ptree::iterator msg_it = msg.begin(); msg_it != msg.end(); ++msg_it)
        {
            string msg_key = msg_it->first;
            if("TIF" == msg_key)
            {
                ptree tif_node = msg.get_child(msg_key);
                for(ptree::iterator tif_node_it = tif_node.begin(); tif_node_it != tif_node.end(); ++tif_node_it)
                {
                    ptree tif = tif_node_it->second;
                    for(ptree::iterator tif_it = tif.begin(); tif_it != tif.end(); ++tif_it)
                    {
                        string tif_key = tif_it->first;
                        if("TKT" == tif_key)
                        {
                            ptree tkt_node = tif.get_child(tif_key);
                            for(ptree::iterator tkt_node_it = tkt_node.begin(); tkt_node_it != tkt_node.end(); ++tkt_node_it)
                            {
                                ptree tkt = tkt_node_it->second;
                                for(ptree::iterator tkt_it = tkt.begin(); tkt_it != tkt.end(); ++tkt_it)
                                {
                                    string tkt_key = tkt_it->first;
                                    if("CPN" == tkt_key)
                                    {
                                        ptree cpn_node = tkt.get_child(tkt_key);
                                        for(ptree::iterator cpn_node_it = cpn_node.begin(); cpn_node_it != cpn_node.end(); ++cpn_node_it)
                                        {
                                            ptree cpn = cpn_node_it->second;
                                            for(ptree::iterator cpn_it = cpn.begin(); cpn_it != cpn.end(); ++cpn_it)
                                            {
     
                                                string cpn_key = cpn_it->first;
                                                val = cpn.get<string>(cpn_key);
                                                cout<< cpn_key <<":"<<val<<endl;
                                            }
                                        }
                                    }
                                    else
                                    {
     
                                        val = tkt.get<string>(tkt_key);
                                        cout<<tkt_key<<":"<<val<<endl;
                                    }
                                }
                            }
                        }
                        else
                        {
     
                            val = tif.get<string>(tif_key);
                            cout<< tif_key << ":" <<val <<endl;
                        }
                    }
                }
            }
            else
            {
     
                val = msg.get<string>(msg_key);
                cout<< msg_key << ":" <<val<<endl;
            }
        }
    }
     
     
    int main()
    {
        //    write_json_data_into_file();
        //    system("pause");
        //    read_json_data_from_file();
        //    system("pause");
        //    write_json_data_into_string();
        //    system("pause");
        //    read_json_data_from_string();
        cout<<"---------------------------"<<endl;
        testMsg();
        cout<<"---------------------------"<<endl;
        bianli_json();
        cout<<"---------------------------"<<endl;
        test();
        cout<<"---------------------------"<<endl;
        parseMsg();
        return 0;
    }

C++ boost 解析 Json相关推荐

  1. Boost property_tree解析json

    使用Boost property_tree解析json 之前使用jsoncpp解析json,现在才知道boost就有解析的库,学习一下吧 property_tree可以解析xml,json,ini,i ...

  2. C++解析json文件

    文章目录 1 JSON文件简介[1] 1.1 JSON文件的语法规则 1.2 JSON值的类型 2 JSON文件解析 1 JSON文件简介[1] 一个项目在设计时会存在很多参数,比如data文件路径. ...

  3. ios5中apple增加了解析JSON的api——NSJSONSerialization。

    ios5中apple增加了解析JSON的api--NSJSONSerialization.网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON.TouchJSON.YA ...

  4. 深入分析jquery解析json数据

    我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. JSON数据如下,是一个嵌套JSON: {"comments":[{& ...

  5. json java typeof_java解析json

    1:下载另外一个Java的小包就可以了: http://www.JSON.org/java/json_simple.zip 里面有源码和文档例题和编程的lib包:编程只需要json_simple.ja ...

  6. 在C语言中解析json配置文件

    业务需求 在C或者C++项目中常常需要解析配置文件,我们常见的配置文件格式一般就是.ini,xml,lua或者是一般的text文件,这些格式比较恼人的一个问题就是数据格式过于冗余,或者功能不够强大,不 ...

  7. winform解析json

    在使用C#开发爬虫程序时,会遇到需要解析json字符串的情况.对于json字符串可以使用正则表达式的形式进行解析,更为方便的方法是使用Newtonsoft.Json来实现. Nuget添加应用包 在工 ...

  8. spark- PySparkSQL之PySpark解析Json集合数据

    PySparkSQL之PySpark解析Json集合数据 数据样本 12341234123412342|asefr-3423|[{"name":"spark", ...

  9. 在.NET2.0中解析Json和Xml

    在.NET2.0中解析Json和Xml 在.NET解析json有很多方法,这里介绍最简单也用的最多的一种. 一.添加引用 解析Json,先下载开源控件 Newtonsoft.Json.dll 下载地址 ...

最新文章

  1. 【FFmpeg】设置H264参数
  2. 触发器实现两表之间的INSERT,DELETE,UPDATE
  3. Android开发--事件的处理/按键按下,弹起,触摸事件等
  4. 后台开发经典书籍--Zookeeper分布式过程
  5. 震惊! Leftmost Digit
  6. 微信小程序-day1
  7. 如何学习32位单片机
  8. hdfs命令_HDFS命令
  9. 浅谈大数据思维——一名管科类学生基于《大数据时代》的思考
  10. 常见电平信号、RS232与RS485相关知识总结
  11. python整数的用法整理
  12. Camera tuning 基础知识点
  13. How to do Mathematics
  14. python演奏音乐
  15. 小程序实现扫码识别二维码内容
  16. 20190507-学习dubbo有感于梁飞
  17. walking机器人入门教程-深度学习-使用yolov5进行物体识别
  18. 加快系统启动速度的技巧
  19. Android实现qq登录注册和好友列表界面
  20. Linux查看文件详细信息指令stat

热门文章

  1. 【实例】用PHP制作一个简单的日历
  2. matlab中线形_MATLAB在绘图时的用法——线形图
  3. python 爬虫实践 (爬取链家成交房源信息和价格)
  4. 游戏《天黑请闭眼OL》全套源代码
  5. 视频垂直翻转播放的效果,如何同时制作多个视频
  6. 正则改造VS Code里React类组件的自定义snippet
  7. 实现景区门票计费系统(Java抽象类练习含GUI窗体组件)
  8. 操作系统是管理计算机软件和硬件的,计算机操作系统是管理计算机硬件和软件的什么...
  9. 步进电机和步进驱动器的介绍、接线、细分和控制方法
  10. 作业:自行录制轻音、浊音、爆破音并使用Audacity分析其时域和频域的特性