将String转换为javax.json.JsonString的问题

时间:2014-11-12 22:11:16

标签: java json java-ee

我有一个看起来像这样的课程

    private byte[] profilePicture;
    private ProfileType profileType;
    private String profileHandle;
    private String personalEmail;
    private Address address;    

使用javax.json将其转换为Json是这样的:

    JsonObject payloadObject = Json.createObjectBuilder()
    .add("profilePicture", profilePictureEncoded)
    .add("profileType", profileType.ordinal())
    .add("profileHandle", profileHandle)
    .add("personalEmail", personalEmail)
    .add("webAppEmail", webappEmail)
    .add("address", address.produceJsonPayload())
    .build();

一切都好!!除了有时没有个人资料图片,所以我想逐步建立这个,即

    JsonObject payloadObject = Json.createObjectBuilder().build();
    if(profilePicture != null)
    {
        final String profilePictureEncoded = ..... //encode the image
        payloadObject.put("profilePicture",profilePictureEncoded);
    }

问题是你不能因为我无法将profilePictureEncoded转换为JsonString

有没有人有这样的工作?或者我需要使用另一个Json库吗?

达米恩

1 个答案:

答案 0 :(得分:1)

您可以获得对JsonObjectBuilder

的引用
JsonObjectBuilder payloadObjectBuilder = Json.createObjectBuilder();

等到你在构建时拥有一切

if(profilePicture != null)
{
    final String profilePictureEncoded = ..... //encode the image
    payloadObject.add("profilePicture",profilePictureEncoded);
}

然后build()

JsonObject payloadObject = payloadObjectBuilder.build();