在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 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());

你可能感兴趣的:(c++,python)