我按照以下結構在CloudantDB中創建了文檔。通過Java程序使用選擇器從雲數據庫中獲取數據時獲取異常
{
"_id": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
"_rev": "XXXXXXXXXXXXXXXXXXXXXXXXX",
"SOCIALKEY": "XXXXXXXXXXXXXXXX",
"SCREEN_USER": "XXXXXXXXXXXXX",
"TWEETS_FEED": "XXXXXXXXXXXXXXXXXXXXXXXXX",
"LOCATION": "XXXXXXXXXXXXXXX",
"CREATEDATE": "XXXXXXXXXXXXXXX",
"ANALYSIS_STATUS": "N",
"SENTIMENT_STATUS": "NA",
"MIXED": "NA",
"SCORE": "NA"
}
我試圖檢索符合條件的所有文檔爲「ANALYSIS_STATUS」=「N」。我正在使用CloudantClient.jar連接CloudantDB &以執行數據庫操作。 我寫下面的代碼來檢索文檔。
public List<TweetsFeed> getTweetFeed() {
List<TweetsFeed> tweetList=new ArrayList<TweetsFeed>();
String selector="\"selector\": {\"ANALYSIS_STATUS\" : \"N\"},\"fields\": [\"_id\",\"TWEETS_FEED\"],\"limit\": 10,\"skip\": 0";
try{
db = CloudantClientMgr.getDB();
tweetList=db.findByIndex(selector,TweetsFeed.class);
System.out.println("size==>"+tweetList.size());
}catch(Exception e){
e.printStackTrace();
}
return tweetList;
}
下面是TweetsFeed.class結構
public class TweetsFeed {
public Integer id;
public String socialKey;
public String screenUser;
public String tweetsFeed;
public String location;
public Date createdate;
public String analysisStatus;
......
}
執行我收到以下錯誤後。
[err] com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 27
[err] at com.google.gson.Gson.assertFullConsumption(Gson.java:779)
[err] at com.google.gson.Gson.fromJson(Gson.java:769)
[err] at com.google.gson.Gson.fromJson(Gson.java:717)
[err] at com.google.gson.Gson.fromJson(Gson.java:689)
[err] at com.cloudant.client.api.Database.getFindByIndexBody(Database.java:1102)
[err] at com.cloudant.client.api.Database.findByIndex(Database.java:360)
[err] at com.cloudant.client.api.Database.findByIndex(Database.java:323)
[err] at com.ibm.dao.CloudantDaoImpl.getTweetFeed(CloudantDaoImpl.java:254)
[err] at com.ibm.service.SocialKeyManagerImpl.getTweetFeed(SocialKeyManagerImpl.java:78)
[err] at com.ibm.scheduler.SentimentAnalysis.insertAnalysis(SentimentAnalysis.java:41)
[err] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[err] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[err] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[err] at java.lang.reflect.Method.invoke(Method.java:606)
[err] at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:283)
[err] at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:272)
[err] at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
[err] at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
[err] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
[err] Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 27
[err] at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505)
[err] at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1386)
[err] at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:531)
[err] at com.google.gson.stream.JsonReader.peek(JsonReader.java:414)
[err] at com.google.gson.Gson.assertFullConsumption(Gson.java:775)
[err] ... 18 more
Size of List---->0
Data not available
代碼有什麼問題?
哪個CloudantClient的版本您使用的? – rhyshort