Как я могу добавить простое значение String в JsonObjectBuilder? - PullRequest
0 голосов
/ 12 сентября 2018

Это дополнительный вопрос от Java JsonObjectBuilder, добавляющий дополнительные «метаданные» при добавлении в качестве дочернего элемента в JsonObjectBuilder .

Когда я добавляю a String, я вижу

"href":{
    "chars":"http://test.com/test/1",
    "string":"http://test.com/test/1",
    "valueType":"STRING"
}

То, что я ожидал, это

"href": "http://..."

Когда я добавляю число, я вижу

"a":{
    "integral":true,
    "valueType":"NUMBER"
}

Я ожидаю что-то вроде

"a": 1

Что я сделал не так?

Это мой код.

@Override
public JsonObject adaptToJson(final Link original) throws Exception {
    return ofNullable(original).map(v -> {
        final JsonObjectBuilder builder = createObjectBuilder();
        //builder.add("a", 1);
        //builder.add("b", 1L);
        ofNullable(v.getUri()).map(URI::toString).ifPresent(href -> builder.add("href", JsonbBuilder.create().toJson(href, String.class)));
        ofNullable(v.getRel()).ifPresent(rel -> builder.add("rel", rel));
        ofNullable(v.getTitle()).ifPresent(title -> builder.add("title", title));
        return builder.build();
    }).orElse(null);
}

И я использую johnzon-jsonb. yasson кажется, есть проблема.

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