Json读写字符串

#include "json/json.h"
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main()
{
    // Json字符串组装
    Json::Value inputValue;
    inputValue["language"] = "0";
    inputValue["service"] = "GET_RAW_INFO";
    inputValue["barcode"] = "123456789"; // 单板条码
    inputValue["barcodeType"] = "PCBA_BARCODE";       // 单板条码类型
    inputValue["rawLotType"] = "TP/LCD";              // 物料类型
    inputValue["standardParam"] = "Y";                // 是否需要返回rawstandardList
    // 写入Json
    std::ostringstream os;
    Json::StreamWriter* writer = Json::StreamWriterBuilder().newStreamWriter();
    if (writer == NULL) {
        return -1;
    }
    writer->write(inputValue, &os);
    string requestJson = os.str();
    cout << requestJson << endl;
    ofstream ofs;
    ofs.open("2.json");
    if (!ofs.is_open())
    {
        cout << "open file error!" << endl;
        return -1;
    }
    ofs << requestJson << "\r\n";
    ofs.close();

    // 读取Json
    ifstream ifs;
    ifs.open("1.json");
    if (!ifs.is_open())
    {
        cout << "open file error!" << endl;
        return -1;
    }
    int BUFFER_SIZE = 5 * 1024;
    char* szRead = new char[BUFFER_SIZE];
    memset(szRead, 0, BUFFER_SIZE);
    ifs.read(szRead, BUFFER_SIZE);
    Json::CharReader* reader = Json::CharReaderBuilder().newCharReader();
    Json::Value root;
    Json::String strErr = "";
    if (!reader->parse(szRead, szRead+ strlen(szRead), &root, &strErr))
    {
        delete[] szRead;
        return -1;
    }
    delete[] szRead;
    std::string name = root["RemoteCfgSavePath"].asString();
    int age = root["CycleTime"].asInt();
    std::cout << name << std::endl;
    std::cout << age << std::endl;

    getchar();
    return true;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值