Package com.veeva.vault.sdk.api.json
package com.veeva.vault.sdk.api.json
This package provides interfaces to manage reading and writing JSON data.
Read
The following is a simple example of reading values from a JSONString:
JsonService jsonService = ServiceLocator.locate(JsonService.class);
String jsonString
= "{"
+ "\"StringProperty\": \"StringValue\","
+ "\"BooleanProperty\": true,"
+ "\"ArrayProperty\": [1,2,3]"
+ "}";
JsonData jsonData = jsonService.readJson(jsonString);
JsonObject jsonObject = jsonData.getJsonObject();
// Get values from JSON object
String stringProperty = jsonObject.getValue("StringProperty", JsonValueType.STRING);
Boolean booleanProperty = jsonObject.getValue("BooleanProperty", JsonValueType.BOOLEAN);
JsonArray arrayProperty = jsonObject.getValue("ArrayProperty", JsonValueType.ARRAY);
// Get values from JSON array
BigDecimal arrayVal0 = arrayProperty.getValue(0, JsonValueType.NUMBER);
BigDecimal arrayVal1 = arrayProperty.getValue(1, JsonValueType.NUMBER);
BigDecimal arrayVal2 = arrayProperty.getValue(2, JsonValueType.NUMBER);
The JsonObject.getProperties() method can be used to read the properties of the
JsonObject, allowing additional logic to be performed on the
JsonObject, for example:
private Map<String, Object> convertJsonToMap(JsonObject jsonObject) {
Map<String, Object> jsonMap = VaultCollections.newMap();
Map<String, JsonProperty> properties = jsonObject.getProperties();
for (String key : properties.keySet()) {
JsonProperty property = properties.get(key);
JsonValueType valueType = property.getJsonValueType();
jsonMap.put(key, jsonObject.getValue(key, valueType));
}
return jsonMap;
}
Write
The following is a simple example of writing a JSONString:
JsonService jsonService = ServiceLocator.locate(JsonService.class);
JsonObjectBuilder objectBuilder = jsonService.newJsonObjectBuilder();
objectBuilder.setValue("StringProperty", "StringValue");
objectBuilder.setValue("BooleanProperty", Boolean.TRUE);
JsonArrayBuilder arrayBuilder = jsonService.newJsonArrayBuilder();
JsonArray jsonArray = arrayBuilder.add(1).add(2).add(3).build();
objectBuilder.setValue("ArrayProperty", jsonArray);
JsonObject jsonObject = objectBuilder.build();
String jsonString = jsonObject.asString();
JsonObjects and JsonArrays can also be
created by adding properties/values to existing JsonObjects or
JsonArrays, for example:
JsonObjectBuilder extendedObjectBuilder = jsonService.newJsonObjectBuilder(jsonObject);
extendedObjectBuilder.setValue("numberProperty", new BigDecimal(10));
JsonObject extendedJsonObject = extendedObjectBuilder.build();
JsonArrayBuilder extendedArrayBuilder = jsonService.newJsonArrayBuilder(jsonArray);
JsonArray extendedJsonArray = extendedArrayBuilder.add(4).build();
-
InterfacesClassDescriptionRepresents a JSON array.Builds
JsonArrayinstances.Represents immutable JSON.Represents a JSON object.BuildsJsonObjectinstances.Represents a property of aJsonObject.Service for reading and writing JSON data.Types that can be read from or written to JSON data.