使用 JSON 格式的输入作为输入,使用 AWS SDK CPP 将项目放入 Amazon DynamoDB
Put an item in Amazon DynamoDB with AWS SDK CPP using as input the item in JSON format
有什么简单的方法可以使用 AWS SDK CPP 将项目放入 Amazon DynamoDB 并使用 [=17] 中的项目作为输入=]JSON格式?像
Aws::DynamoDB::Model::PutItemRequest request;
request.SetTableName(table);
request.FunctionThatSetsAllAttributesParsingAJsonString(json_string);
或者是否总是需要设置每个属性及其类型?
Aws::DynamoDB::Model::PutItemRequest request;
request.SetTableName(table);
Aws::DynamoDB::Model::AttributeValue val1;
val1.SetS(str);
request.AddItem(key, val1);
Aws::DynamoDB::Model::AttributeValue val2;
...
如果 JSON 对象遵循 Amazon DynamoDB JSON 格式,您可以轻松地将其转换为Aws::Map 对象。例如,对于 Jsoncpp Json::Value 对象:
Aws::Map<Aws::String, Aws::DynamoDB::Model::AttributeValue> json2atts(const Json::Value& json) {
try {
Aws::Map<Aws::String, Aws::DynamoDB::Model::AttributeValue> amap;
Aws::Utils::Json::JsonValue jval(Json::FastWriter().write(json));
if (!jval.WasParseSuccessful()) {
throw exception("Failed to parse input JSON");
};
Aws::Utils::Json::JsonView jview = jval.View();
Aws::Map<Aws::String, Aws::Utils::Json::JsonView> jmap = jview.GetAllObjects();
for(auto& i : jmap) {
amap[i.first] = i.second.AsObject();
};
return amap;
}
catch (std::exception &e) {
...
};
};
然后,放置 Aws::Map 对象:
Aws::DynamoDB::Model::PutItemRequest request;
request.SetTableName(table);
request.SetItem(amap);
有什么简单的方法可以使用 AWS SDK CPP 将项目放入 Amazon DynamoDB 并使用 [=17] 中的项目作为输入=]JSON格式?像
Aws::DynamoDB::Model::PutItemRequest request;
request.SetTableName(table);
request.FunctionThatSetsAllAttributesParsingAJsonString(json_string);
或者是否总是需要设置每个属性及其类型?
Aws::DynamoDB::Model::PutItemRequest request;
request.SetTableName(table);
Aws::DynamoDB::Model::AttributeValue val1;
val1.SetS(str);
request.AddItem(key, val1);
Aws::DynamoDB::Model::AttributeValue val2;
...
如果 JSON 对象遵循 Amazon DynamoDB JSON 格式,您可以轻松地将其转换为Aws::Map
Aws::Map<Aws::String, Aws::DynamoDB::Model::AttributeValue> json2atts(const Json::Value& json) {
try {
Aws::Map<Aws::String, Aws::DynamoDB::Model::AttributeValue> amap;
Aws::Utils::Json::JsonValue jval(Json::FastWriter().write(json));
if (!jval.WasParseSuccessful()) {
throw exception("Failed to parse input JSON");
};
Aws::Utils::Json::JsonView jview = jval.View();
Aws::Map<Aws::String, Aws::Utils::Json::JsonView> jmap = jview.GetAllObjects();
for(auto& i : jmap) {
amap[i.first] = i.second.AsObject();
};
return amap;
}
catch (std::exception &e) {
...
};
};
然后,放置 Aws::Map
Aws::DynamoDB::Model::PutItemRequest request;
request.SetTableName(table);
request.SetItem(amap);