简体   繁体   English

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

[英]Issues Converting String to javax.json.JsonString

I have a class that looks something like this 我有一堂课,看起来像这样

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

To convert this to Json using javax.json is like this: 使用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();

All good!! 都好!! except sometimes there is no profile picture so I wanted to build this incrementally ie 除了有时没有个人资料图片,所以我想逐步建立这个

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

problem is you cant because I can't cast profilePictureEncoded to a JsonString 问题是您不能,因为我无法将profilePictureEncoded转换为JsonString

Has anyone got something like this working? 有人有这样的工作吗? Or do I need to use another Json Library? 还是我需要使用另一个Json库?

Damien 达米安

You can just get a reference to the JsonObjectBuilder . 您可以仅参考JsonObjectBuilder

JsonObjectBuilder payloadObjectBuilder = Json.createObjectBuilder();

wait until you have everything while constructing 等到你在构造时拥有一切

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

and then build() 然后build()

JsonObject payloadObject = payloadObjectBuilder.build();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM