Постоснащение кузова2 включает фигурные скобки - PullRequest
0 голосов
/ 02 июля 2019

Я хочу опубликовать запрос с модифицированным телом, при этом в скобках есть другие скобки, ожидающий запрос тела: {"attributes":{"data":"FOOBAR"},"deviceId":171,"type":"custom"}

Я пробовал с обратной косой чертой и всегда получаю неверный запрос.

Activity.java

StringBuilder stringBuilder = new StringBuilder("{\"data\":\"");
                                stringBuilder.append(commandInput.getText());
                                stringBuilder.append("\"}");

                                Tasker task = new Tasker(idUnit, "custom", stringBuilder.toString());
                                Call<Tasker> call2 = mApiService.postCommand(task);
                                call2.enqueue(new Callback<Tasker>() {
                                    @Override
                                    public void onResponse(Call<Tasker> call, Response<Tasker> response) {
                                        Toast.makeText(CommandActivity.this, getString(R.string.command_sent), Toast.LENGTH_SHORT).show();
                                    }

                                    @Override
                                    public void onFailure(Call<Tasker> call, Throwable t) {
                                        Toast.makeText(CommandActivity.this, getString(R.string.command_failed), Toast.LENGTH_SHORT).show();
                                    }
                                });

Tasker.java

public class Tasker {
    private long deviceId;
    private String type;
    private String attributes;

    public Tasker(long deviceId, String type, String attributes) {
        this.deviceId = deviceId;
        this.type = type;
        this.attributes = attributes;
    }
}

Ожидаемая полезная нагрузка результата:

{"attributes":{"data":"FOOBAR"},"deviceId":171,"type":"custom"}

Фактическая полезная нагрузка:

{"attributes":"{\"data\":\"FOOBAR\"}","deviceId":171,"type":"custom"}

1 Ответ

0 голосов
/ 03 июля 2019

Вам нужен некоторый класс или объект Map для хранения атрибутов, а не String attributes

Также, попробуйте использовать класс JsonObject, а не просто StringBuilder

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...