我有这个非常简单的类,我将保存从json
解析的数据public class WitAiOutcome {
private String clause ="";
private String intent = "";
private String[] entities;
public void setClause(String clause){
this.clause = clause;
}
public void setIntent(String intent){
this.intent = intent;
}
public void setEntities (String[] entities){
this.entities = entities;
}
public String getClause(){
return this.clause;
}
public String getIntent(){
return this.intent;
}
public String[] getEntities(){
return this.entities;
}
}
我不确定我的班级是否正确,因为我一段时间没有编码,但我想这就是我应该做的。
所以现在这是我的解析代码,它可以满足我的需求,我正确地得到了我想要的东西,但是当它将结果保存在我的对象中时它将无法工作,我不知道为什么。 ..我的日志显示没有错误,它只是不会打印我正在“检查”的最后一部分。我检查了结果是否正确,没有设置它们,一切正常。有人可以帮助我,我不知道我哪里错了。
protected String doInBackground(String... params) {
WitAiOutcome mOutcome = new WitAiOutcome();
String[] entities = null;
JSONArray root = null;
try{
System.out.println("##################################");
JSONObject OutcomejObject = new JSONObject(params[0]);
JSONObject mObject;
JSONObject entitiesObject;
root = OutcomejObject.getJSONArray("outcomes");
mObject = root.getJSONObject(0);
entitiesObject = mObject.getJSONObject("entities");
for(int i=0;i<entitiesObject.length();i++) {
//System.out.println(entitiesObject.names().getString(i)); //OK
entities[i] = entitiesObject.names().getString(i);
}
// System.out.println(mObject.getString("_text")); //OK
// System.out.println(mObject.getString("intent")); //OK
mOutcome.setIntent(mObject.getString("intent"));
mOutcome.setClause(mObject.getString("_text"));
mOutcome.setEntities(entities);
/**************JUST CHECKING******************/
System.out.println(mOutcome.getClause());
System.out.println(mOutcome.getEntities());
entities = mOutcome.getEntities();
for(int i=0;i<entities.length;i++)
System.out.println(entities[i]);
}catch(Exception e){}
return null;
}