如何将简单的String值添加到JsonObjectBuilder?

时间:2018-09-12 01:50:27

标签: java json java-ee jsonb java-ee-8

这是Java JsonObjectBuilder adding extra 'metadata' when added as child to JsonObjectBuilder的后续问题。

当我add一个String时,我看到了

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

我期望的是

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

当我add一个数字时,我看到

"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-jsonbyasson似乎有问题。

0 个答案:

没有答案