在C++中利用rapidjson实现Python中的字典(Dict)

python 中的dict如下:
Dicts = {
     "Stain":{
        "ResultType": "Physics",
        "Results": [
            {
                "Key": "KeyPoints",
                "Title": "瑕疵区域",
                "Unit": "",
                "Value": stainlist,

                "Primitive":[
                    "faces"
                ]
            },
                {
                    "Key": "Num",
                    "Title": "数量",
                    "Unit": "个",
                    "Value": num
                },
            ],
            "Score": 0,
            "Title": "斑"
    }
    }

利用c++的实现如下:

writer.StartObject();开始 {

writer.StartArray();开始 [

后面同理不在赘述

    rapidjson::StringBuffer buffer;
	rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
	writer.StartObject();
	writer.Key("Stain");
	writer.StartObject();
	writer.Key("ResultType");
	writer.String("Physics");
	//数组类型
	writer.Key("Results");
	writer.StartArray();
	writer.StartObject();
	writer.Key("Key");
	writer.String("KeyPoints");
	writer.Key("Title");
	writer.String("瑕疵点");
	writer.Key("Unit");
	writer.String("个");
	writer.Key("Value");
	writer.StartArray();
	for (int i = 0; i < filterContours.size(); i++) {
		writer.StartArray();
		for (int j = 0; j < filterContours[i].size(); j++) {
				writer.Int(filterContours[i][j].x);
				writer.Int(filterContours[i][j].y);
		}
		writer.EndArray();
	}
	writer.EndArray();
	writer.Key("Primitive");
	writer.String("faces");
	writer.EndObject();

	writer.StartObject();
	writer.Key("Key");
	writer.String("Num");
	writer.Key("Title");
	writer.String("数量");
	writer.Key("Unit");
	writer.String("个");
	writer.Key("Value");
	writer.Int(filterContours.size());
	writer.EndObject();
	writer.EndArray();
	writer.Key("Score");
	writer.Int(0);
	writer.Key("Title");
	writer.String("斑");
	writer.EndObject();
	writer.EndObject();
	jsonStr = buffer.GetString();
	printf("%s\n", buffer.GetString());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值