Это дополнительный вопрос от 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
кажется, есть проблема.