我希望从我的android端点调用我的方法返回。
这是我的方法,测试google explorer api上的实体NewUsers中是否已有用户(当我在explorer api上测试时,该方法正常工作):
/**
* Method to update the information about the user.
* We don't allow to update the email.
* @param : String email (to compare), String sexe, String age, String weight,
* @return : JSONObject containing the response
*/
@ApiMethod(name = "greetings.userExist", httpMethod = "get", path = "jsonobject/userExist")
public JSONObject userExist(@Named("Email") String email) {
JSONObject obj = new JSONObject();
obj.put("Value", "false");
Query q = new Query ("NewUsers");
q.addFilter("Email", Query.FilterOperator.EQUAL, email);
PreparedQuery pq = datastore.prepare(q);
for (Entity entity : pq.asIterable ())
{
// = user already exist
if(entity.getProperty("Email").equals(email)){
obj.put("Value", "true");
}
}
return obj;
}
以下是我的客户端端点android( EDITED )的代码:
// Get the jsonObject to know if the user already exist
userExist = new AsyncTask<String, Void, JSONObject>() {
JSONObject jsonObject;
@Override
protected JSONObject doInBackground(String... params) {
// Retrieve service handle.
Helloworld apiServiceHandle = AppConstants.getApiServiceHandle();
try {
// Call the api method and pass the value
return (JSONObject) apiServiceHandle.greetings().userExist(emailUser).getJsonContent();
} catch (IOException e) {
Log.e("Error", e.toString());
}
return null;
}
@Override
protected void onPostExecute(JSONObject obj) {
Log.i("Value :",obj.toString());
if(obj != null){
try {
value = obj.getString("Value");
Log.i("Value :", value);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
userExist.execute();
当我打印时,结果为null ..
如何获取所有jsonObject?
有什么想法吗?感谢
答案 0 :(得分:0)
我建议您创建一个单独的类,而不是创建一个JsonObject,它将包含所有必需的字段。确保此类是可序列化,然后放入输出中的对象。 你会发现对象作为回应。