#java #android #json #api
#java #Android #json #API
Вопрос:
Я сейчас в затруднительном положении. Мой API возвращает токен для входа в систему при публикации нового пользователя с помощью UserData. Как мне получить response.body() в виде строки, чтобы сохранить ее?
Он возвращает объект Post только то, чего я на самом деле не хочу. Я использую его только для создания поста.
private void createPost(User user) {
Post post = new Post(user.getName(), user.getGender(), user.getBirthyear(), user.getHeight(),user.getWeight());
Call<Post> call = jsonmongo.createPost(post);
// To execute it asynchron
call.enqueue(new Callback<Post>() {
@Override
public void onResponse(Call<Post> call, Response<Post> response) {
if (!response.isSuccessful()) {
Log.e("RESPONSECODE", "" response.code());
return;
}
Log.e("RESPONSECODE", "" response.code());
}
@Override
public void onFailure(Call<Post> call, Throwable t) {
Log.e("RESPONSECODE", "" t.getMessage());
}
});
}
Получите ответ.Тело и сохраните его в базе данных через SQL Adapter ( adapter.addToken(response.body())
)
response.body().toString
возвращает только ссылку на объект ( com.example.Resources.Post@4c8352
)
String S = new Gson().toJson(response.body())
Log.e("JSON", S)
Возвращает это:
E/JSON: {"age":0,"gender":0,"height":0,"weight":0}
Желаемый результат: E/JSON: {"token":aslfjkhr9RRRRf283FGr3489pjfGGG34HH89fj}
Комментарии:
1. .toString() не работает для вас в этом случае?
2. .toString возвращает только ссылку на объект ( com.example. Ресурсы. Сообщение @4c8352 )
3. Вы правы, извините за это. В этом случае я использую библиотеку Gson, попробуйте: new Gson().toJSON(ваш объект);
4. Проблема в том, что мой объект Post имеет переменные, отличные от возвращаемого моего Json. например, переменная теряется в процессе.
5. Я указываю «имя, пол…», а взамен получаю «жетон». Мой объект Post не содержит токена. Нужно ли мне добавлять его, или я могу каким-то образом сохранить тело другим способом?
Ответ №1:
позвольте мне попробовать… вы можете использовать библиотеку Gson для создания объекта String json из ответа.
Попробуйте:
new Gson().toJson(response);
Комментарии:
1. Не работает. Возвращает пустой вывод Json: E/JSON: {«возраст»: 0, «пол»:0, «рост»:0, «вес»:0}