Damien Cooke Damien Cooke - 1 year ago 96
JSON Question

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:

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

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

problem is you cant because I can't cast profilePictureEncoded to a JsonString

Has anyone got something like this working? Or do I need to use another Json Library?


Answer Source

You can just get a reference to the JsonObjectBuilder.

JsonObjectBuilder payloadObjectBuilder = Json.createObjectBuilder();

wait until you have everything while constructing

if(profilePicture != null)
    final String profilePictureEncoded = ..... //encode the image

and then build()

JsonObject payloadObject = payloadObjectBuilder.build();
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download