0
我試圖使用Java客戶端API,特別是getViewRequestBuilder
與getDocAs()
cloudant Java客戶端getDocsAs()
我Cloudant的數據是這樣的:
{
"_id": "30984feadf2246a68d97cbeff8bf06a0",
"_rev": "1-8df71f2f874f9228fffb831779063fa9",
"correlationID": "qweriwern34924df02342jk33",
"status": "Received",
"contactType": "EMAIL",
"ttlHours": 0,
"requestingId": "123456",
"requestingApplication": "JUnit",
"logTimeMs": 1466446389064,
"logTimeString": "20-06-2016 14:13:09",
"tsdHitStatus": false,
"emailContact": {
"to": "[email protected],com",
"bcc": "[email protected]"
},
"sendSecure": false
}
我創建一個視圖返回三個字段。
if (doc. emailContact.to && doc.correlationID) {
emit(doc.logTimeMs,
{
correlationID: doc.correlationID,
emailAddress: doc.emailContact.to,
contactType: doc.contactType
});
我想獲得基於時間範圍的查詢並返回一個電子郵件對象。該視圖在PostMan中正常工作。當我從Java嘗試這個時,我得到了兩個字段,但emailAddress字段始終爲空。我想知道getDocAs()
未能理解「doc.emailContact.to」字段。
我認爲視圖中的「emailAddress:doc.emailContact.to」這行會允許數據和類之間的映射。
的Java代碼從視圖中獲得數據:
db.getViewRequestBuilder("ch_queries","Email).newRequest(Key.Type.NUMBER, Object.class).startKey(time0).endKey(time1).includeDocs(true).reduce(false).build().getResponse().getDocsAs(Email.class);
電子郵件類
public class Email implements Serializable {
private String correlationID;
private String emailAddress;
private String contactType;
public String getContactType() {
return contactType;
}
public void setContactType(String contactType) {
this.contactType = contactType;
}
public String getCorrelationID() {
return correlationID;
}
public void setCorrelationID(String correlationID) {
this.correlationID = correlationID;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}