/** * returns a serialized json string. * * @return String - json * @throws IOException */ public String toJson() throws IOException { return JsonUtil.toJsonString(this); }
/** Convert a token object to a Json string. */ public static String toJsonString(final Token<? extends TokenIdentifier> token ) throws IOException { return toJsonString(Token.class, toJsonMap(token)); }
/** Convert LocatedBlocks to a Json string. */ public static String toJsonString(final LocatedBlocks locatedblocks ) throws IOException { if (locatedblocks == null) { return null; } final Map<String, Object> m = new TreeMap<String, Object>(); m.put("fileLength", locatedblocks.getFileLength()); m.put("isUnderConstruction", locatedblocks.isUnderConstruction()); m.put("locatedBlocks", toJsonArray(locatedblocks.getLocatedBlocks())); m.put("lastLocatedBlock", toJsonMap(locatedblocks.getLastLocatedBlock())); m.put("isLastBlockComplete", locatedblocks.isLastBlockComplete()); return toJsonString(LocatedBlocks.class, m); }
public static String toJsonString(final DirectoryListing listing) throws IOException { if (listing == null) { return null; } return toJsonString(DirectoryListing.class, toJson(listing)); }
/** Convert a DatanodeInfo[] to a Json array. */ private static Object[] toJsonArray(final DatanodeInfo[] array) { if (array == null) { return null; } else if (array.length == 0) { return EMPTY_OBJECT_ARRAY; } else { final Object[] a = new Object[array.length]; for(int i = 0; i < array.length; i++) { a[i] = toJsonMap(array[i]); } return a; } }
/** Convert a LocatedBlock to a Json map. */ private static Map<String, Object> toJsonMap(final LocatedBlock locatedblock ) throws IOException { if (locatedblock == null) { return null; } final Map<String, Object> m = new TreeMap<String, Object>(); m.put("blockToken", toJsonMap(locatedblock.getBlockToken())); m.put("isCorrupt", locatedblock.isCorrupt()); m.put("startOffset", locatedblock.getStartOffset()); m.put("block", toJsonMap(locatedblock.getBlock())); m.put("storageTypes", toJsonArray(locatedblock.getStorageTypes())); m.put("locations", toJsonArray(locatedblock.getLocations())); m.put("cachedLocations", toJsonArray(locatedblock.getCachedLocations())); return m; }
m.put("group", status.getGroup()); FsPermission perm = status.getPermission(); m.put("permission", toString(perm)); if (perm.getAclBit()) { m.put("aclBit", true); try { return includeType ? toJsonString(FileStatus.class, m) : MAPPER.writeValueAsString(m); } catch (IOException ignored) {
@Test public void testHdfsFileStatus() throws IOException { final long now = Time.now(); final String parent = "/dir"; final HdfsFileStatus status = new HdfsFileStatus(1001L, false, 3, 1L << 26, now, now + 10, new FsPermission((short) 0644), "user", "group", DFSUtil.string2Bytes("bar"), DFSUtil.string2Bytes("foo"), INodeId.GRANDFATHER_INODE_ID, 0, null, (byte) 0); final FileStatus fstatus = toFileStatus(status, parent); System.out.println("status = " + status); System.out.println("fstatus = " + fstatus); final String json = JsonUtil.toJsonString(status, true); System.out.println("json = " + json.replace(",", ",\n ")); ObjectReader reader = new ObjectMapper().reader(Map.class); final HdfsFileStatus s2 = JsonUtil.toFileStatus((Map<?, ?>) reader.readValue(json), true); final FileStatus fs2 = toFileStatus(s2, parent); System.out.println("s2 = " + s2); System.out.println("fs2 = " + fs2); Assert.assertEquals(fstatus, fs2); }
@Override Map<String, byte[]> decodeResponse(Map<?, ?> json) throws IOException { return JsonUtil.toXAttrs(json); } }.run();
@Override FileStatus[] decodeResponse(Map<?,?> json) { final Map<?, ?> rootmap = (Map<?, ?>)json.get(FileStatus.class.getSimpleName() + "es"); final List<?> array = JsonUtil.getList( rootmap, FileStatus.class.getSimpleName()); //convert FileStatus final FileStatus[] statuses = new FileStatus[array.size()]; int i = 0; for (Object object : array) { final Map<?, ?> m = (Map<?, ?>) object; statuses[i++] = makeQualified(JsonUtil.toFileStatus(m, false), f); } return statuses; } }.run();
response.put("cacheUsed", 321l); DatanodeInfo di = JsonUtil.toDatanodeInfo(response); Assert.assertEquals(name, di.getXferAddr()); Map<String, Object> r = JsonUtil.toJsonMap(di); Assert.assertEquals(name, r.get("name")); Assert.assertEquals("127.0.0.1", r.get("ipAddr"));
public static String toJsonString(final List<XAttr> xAttrs, final XAttrCodec encoding) throws IOException { final Map<String, Object> finalMap = new TreeMap<String, Object>(); finalMap.put("XAttrs", toJsonArray(xAttrs, encoding)); return MAPPER.writeValueAsString(finalMap); }
/** Convert an Object[] to a DatanodeInfo[]. */ private static DatanodeInfo[] toDatanodeInfoArray(final List<?> objects) throws IOException { if (objects == null) { return null; } else if (objects.isEmpty()) { return EMPTY_DATANODE_INFO_ARRAY; } else { final DatanodeInfo[] array = new DatanodeInfo[objects.size()]; int i = 0; for (Object object : objects) { array[i++] = toDatanodeInfo((Map<?, ?>) object); } return array; } }
/** Convert a AclStatus object to a Json string. */ public static String toJsonString(final AclStatus status) { if (status == null) { return null; } final Map<String, Object> m = new TreeMap<String, Object>(); m.put("owner", status.getOwner()); m.put("group", status.getGroup()); m.put("stickyBit", status.isStickyBit()); final List<String> stringEntries = new ArrayList<>(); for (AclEntry entry : status.getEntries()) { stringEntries.add(entry.toStringStable()); } m.put("entries", stringEntries); FsPermission perm = status.getPermission(); if (perm != null) { m.put("permission", toString(perm)); } final Map<String, Map<String, Object>> finalMap = new TreeMap<String, Map<String, Object>>(); finalMap.put(AclStatus.class.getSimpleName(), m); try { return MAPPER.writeValueAsString(finalMap); } catch (IOException ignored) { } return null; }
@Override AclStatus decodeResponse(Map<?,?> json) { return JsonUtil.toAclStatus(json); } }.run();
@Override byte[] decodeResponse(Map<?, ?> json) throws IOException { return JsonUtil.getXAttr(json, name); } }.run();
IOException re = JsonUtil.toRemoteException(m);
m.put("group", status.getGroup()); FsPermission perm = status.getPermission(); m.put("permission", toString(perm)); if (status.hasAcl()) { m.put("aclBit", true); m.put("ecPolicyObj", getEcPolicyAsMap(status.getErasureCodingPolicy()));
@Override HdfsFileStatus decodeResponse(Map<?,?> json) { return JsonUtil.toFileStatus(json, true); } }.run();
private static Object[] toJsonArray(final List<XAttr> array, final XAttrCodec encoding) throws IOException { if (array == null) { return null; } else if (array.size() == 0) { return EMPTY_OBJECT_ARRAY; } else { final Object[] a = new Object[array.size()]; for(int i = 0; i < array.size(); i++) { a[i] = toJsonMap(array.get(i), encoding); } return a; } }