use of com.serotonin.json.type.JsonTypeWriter in project ma-modules-public by infiniteautomation.
the class JsonEmportController method export.
@PreAuthorize("isAdmin()")
@ApiOperation(value = "Export Configuration", notes = "", response = JsonValue.class)
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<JsonValue> export(@ApiParam(value = "Elements To Export", required = true, allowMultiple = true) @RequestParam(name = "exportElements", required = true) String[] exportElements, HttpServletRequest request) throws JsonException {
// Do the Export
Map<String, Object> data = ConfigurationExportData.createExportDataMap(exportElements);
JsonTypeWriter writer = new JsonTypeWriter(Common.JSON_CONTEXT);
return new ResponseEntity<>(writer.writeObject(data), HttpStatus.OK);
}
use of com.serotonin.json.type.JsonTypeWriter in project ma-core-public by infiniteautomation.
the class JsonSerializableUtility method convertMapToJsonObject.
/**
*/
public static JsonObject convertMapToJsonObject(Map<String, Object> map) throws JsonException {
JsonTypeWriter typeWriter = new JsonTypeWriter(Common.JSON_CONTEXT);
ObjectTypeWriter writer = new ObjectTypeWriter(typeWriter);
Iterator<String> it = map.keySet().iterator();
while (it.hasNext()) {
String name = it.next();
writer.writeEntry(name, map.get(name));
}
return writer.getJsonObject();
}
use of com.serotonin.json.type.JsonTypeWriter in project ma-core-public by infiniteautomation.
the class EmportService method export.
/**
* Export JSON to a Writer
*/
public void export(Map<String, Object> data, Writer writer, int prettyIndent) throws PermissionException {
permissionService.ensurePermission(Common.getUser(), exportPermissionDefinition.getPermission());
JsonTypeWriter typeWriter = new JsonTypeWriter(Common.JSON_CONTEXT);
JsonWriter jsonWriter = new JsonWriter(Common.JSON_CONTEXT, writer);
jsonWriter.setPrettyIndent(prettyIndent);
jsonWriter.setPrettyOutput(prettyIndent > 0);
try {
JsonValue export = typeWriter.writeObject(data);
jsonWriter.writeObject(export);
} catch (JsonException | IOException e) {
throw new ShouldNeverHappenException(e);
}
}
use of com.serotonin.json.type.JsonTypeWriter in project ma-core-public by infiniteautomation.
the class LazyFieldJsonTest method testLazyPermissionFromJsonObject.
@Test
public void testLazyPermissionFromJsonObject() {
RoleService roleService = Common.getBean(RoleService.class);
PermissionService permissionService = Common.getBean(PermissionService.class);
Role role1 = roleService.insert(new RoleVO(Common.NEW_ID, "XID-1", "Role 1")).getRole();
Role role2 = roleService.insert(new RoleVO(Common.NEW_ID, "XID-2", "Role 2")).getRole();
LazyField<MangoPermission> permission = new LazyField<>(() -> MangoPermission.builder().minterm(role1, role2).build());
try (StringWriter stringWriter = new StringWriter()) {
JsonWriter writer = new JsonWriter(Common.JSON_CONTEXT, stringWriter);
JsonTypeWriter typeWriter = new JsonTypeWriter(Common.JSON_CONTEXT);
JsonValue value = typeWriter.writeObject(permission);
writer.setPrettyIndent(0);
writer.setPrettyOutput(true);
writer.writeObject(value);
String json = stringWriter.toString();
JsonTypeReader typeReader = new JsonTypeReader(json);
JsonValue read = typeReader.read();
JsonArray root = read.toJsonArray();
JsonReader reader = new JsonReader(Common.JSON_CONTEXT, root);
ImportContext context = new ImportContext(reader, new ProcessResult(), Common.getTranslations());
LazyField<MangoPermission> readPermission = new LazyField<>();
TypeDefinition lazyType = new TypeDefinition(LazyField.class, MangoPermission.class);
context.getReader().readInto(lazyType, readPermission, root);
assertEquals(permission.get(), readPermission.get());
} catch (IOException | JsonException e) {
e.printStackTrace();
fail(e.getMessage());
}
}
use of com.serotonin.json.type.JsonTypeWriter in project ma-core-public by infiniteautomation.
the class UserTest method testUser.
@Test
public void testUser() {
User user = new User();
Date created = new Date();
user.setCreated(created);
String userJson;
try (StringWriter stringWriter = new StringWriter()) {
JsonWriter writer = new JsonWriter(Common.JSON_CONTEXT, stringWriter);
JsonTypeWriter typeWriter = new JsonTypeWriter(Common.JSON_CONTEXT);
JsonValue value = typeWriter.writeObject(user);
writer.setPrettyIndent(0);
writer.setPrettyOutput(true);
writer.writeObject(value);
userJson = stringWriter.toString();
// System.out.println(userJson);
JsonTypeReader typeReader = new JsonTypeReader(userJson);
JsonValue read = typeReader.read();
JsonObject root = read.toJsonObject();
JsonReader reader = new JsonReader(Common.JSON_CONTEXT, root);
ImportContext context = new ImportContext(reader, new ProcessResult(), Common.getTranslations());
User readUser = new User();
context.getReader().readInto(readUser, root);
// Assert the dates are the same
assertEquals(created, readUser.getCreated());
} catch (IOException | JsonException e) {
fail(e.getMessage());
}
}
Aggregations