让我们假设你有以下JSON:
QMutex mutex;
void writeXML(QModelIndex & index)
{
QMutexLocker lock(&mutex);
qDebug() << index.data();
}
//...
{
//somewhere
//get list of indexes
QModelIndexList list = ui->tableView->selectionModel()->selectedIndexes();
QFutureWatcher<void> futureWatcher;
//apply writeXML to each index
futureWatcher.setFuture(QtConcurrent::map(list, writeXML));
futureWatcher.waitForFinished();
}
可以转为简单的Java对象吗?
{
"prop0": "value0",
"level1" : {
"prop1": "value1"
"prop2": "value2"
},
....
}
我不想创建一个中间类来包装&#34; level1&#34;。
我想到的是以这种方式映射我的课程:
class Pojo {
private String prop0;
private String prop1;
private String prop2;
}
但不幸的是它不起作用。反问题 - 将复杂的Java对象转换为普通的JSON可以使用class Pojo {
private String prop0;
@JsonProperty("level1.prop1")
private String prop1;
@JsonProperty("level1.prop2")
private String prop2;
}
注释简单地解决。
您能为我的问题建议任何可行的解决方案吗?
答案 0 :(得分:0)
您需要编写自定义反序列化程序,或添加可以转换结构的setter。对于后者你可以做类似
的事情...
public void setLevel1(Map<String,String> values) { // or JsonNode
prop1 = values.get("prop1");
// and so forth; if names are regular, can use looping
}