zoukankan      html  css  js  c++  java
  • Qt 4.8.5 jsoncpp lib

                                    Qt 4.8.5 jsoncpp lib  
    
    一、参考文档:
        1. QtCreator动态编译jsoncpp完美支持x86和arm平台
            http://www.linuxidc.com/Linux/2012-02/53678.htm
        2. Jsoncpp的使用
            http://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html
    
    二、Drownload jsoncpp open source:
        经过测试,尽量下载参考文档1里的源代码,我从github上下载最新的版本,在我的Qt 4.8.5
        上面编译会出问题,而使用参考文档里的源代码没有问题。
    
    三、使用流程:
        1. 将include/json里面所有文件复制到刚刚新建的json文件夹里(共8个文件,全部是.h的头文件);
        2. 将src/lib_json里面的所有文件全部复制到json文件里,共8个文件;
        3. 通过复制这些文件,就组成了我们所要的JSON库的全部源代码了。完整的文件清单见下面:
            autolink.h
            config.h
            features.h
            forwards.h
            json_batchallocator.h
            json.h
            json_internalarray.inl
            json_internalmap.inl
            json_reader.cpp
            json_value.cpp
            json_valueiterator.inl
            json_writer.cpp
            reader.h
            sconscript
            value.h
            writer.h
        4. 把刚刚准备好的JSON库,复制到项目的同一目录下;
        5. 在需要用到json解析的文件中引入Json库:#include "json/json.h"6. 参考《参考文档》中的例子进行测试。
    
    四、Test Demo:
        #include "mainwindow.h"
        #include "ui_mainwindow.h"
        #include "unistd.h"
        #include "json/json.h"
        
        MainWindow::MainWindow(QWidget *parent) :
            QMainWindow(parent),
            ui(new Ui::MainWindow)
        {
            ui->setupUi(this);
            using namespace std;
            std::string strVale = "{"number":"13","name":"zeng", "age":"34"}";
        
            ui->parseString->setText(QString::fromStdString(strVale));
        }
        
        MainWindow::~MainWindow()
        {
            delete ui;
        }
        
        void MainWindow::on_parse_clicked()
        {
            using namespace std;
            Json::Reader reader;
            Json::Value value;
            if ( reader.parse(ui->parseString->toPlainText().toStdString(), value)) {
                ui->number->setText(QString::fromStdString(value["number"].asString()));
                ui->name->setText(QString::fromStdString(value["name"].asString()));
                ui->age->setText(QString::fromStdString(value["age"].asString()));
            }
        
        }
        
        void MainWindow::on_synthetic_clicked()
        {
            Json::FastWriter writer;
            Json::Value person;
        
            person["number"] = "111";
            person["name"] = "zengjf";
            person["age"] = "100";
        
            std::string jsontofile = writer.write(person);
        
            ui->parseString->setText(QString::fromStdString(jsontofile));
        }
        
        void MainWindow::on_pushButton_clicked()
        {
            ui->parseString->setText("");
        }
  • 相关阅读:
    ABAP 捕获回车键更新值
    拼接报错信息
    你知道什么叫金丝雀分布吗?你知道如何在Service Mesh微服务架构中实现吗?
    java代码在阿里云函数计算中的应用
    创投机构BP联系方式3
    迁移到RDS或者腾讯云MYSQL实例发生sql_mode=only_full_group_by错误的解决
    我国广告业存在的问题
    【微信小程序】固定头部,只滚动内容部分功能
    低智商屌丝蒟蒻的2012成都题解
    罪过啊,废了好大的力气才搞出了 Kth 数
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4959965.html
Copyright © 2011-2022 走看看