我想生成一个如下所示的json:
{
"myRepeatedKey": "test_data_1",
"myRepeatedKey": "test_data_2",
"myRepeatedKey": "test_data_3",
"myRepeatedKey": "test_data_4"
}
使用Qt5。我天真的方法看起来像这样:
QVariantMap map;
map_fill["myRepeatedKey"]="test_data_1";
map_fill["myRepeatedKey"]="test_data_2";
map_fill["myRepeatedKey"]="test_data_3";
map_fill["myRepeatedKey"]="test_data_4";
QJsonDocument doc=QJsonDocument::fromVariant(map);
qDebug()<<doc.toJson();
由于这会替换条目的数据,因此输出(不足为奇):
}
"myRepeatedKey": "test_data_4"
}
那我怎么能在Qt5中做到这一点?
PS:根据RFC4627建议但不要求json数据中名称/值对的名称是唯一的,所以即使我要求的是不推荐练习,我仍然会知道如何这样做。
谢谢!
答案 0 :(得分:0)
我认为添加重复键是一个坏主意。在这种情况下,您应该使用json数组(QJsonArray)。
QJsonArray array;
array.append("test_data_1");
array.append("test_data_2");
array.append("test_data_3");
array.append("test_data_4");
QJsonObject o;
o["myArray"] = array;
QJsonDocument doc(o);
qDebug() << doc.toJson();
输出
{
"myArray": [
"test_data_1",
"test_data_2",
"test_data_3",
"test_data_4"
]
}