[英]How create a JSONArray in java
我有 2 个 java 函数: listeFilesHdfs
返回存储在 HDFS 中的文件列表,例如:
备注:HDFS 中存储的文件内容为 JSON 格式,例如:
{
"name":"Name",
"type":"string"
},
{
"name":"Version",
"type":"string"
},
{
"name":"r_service",
"type":"string"
},
{
"name":"r_timestamp",
"type":"long"
},
我创建了下面的 function 来调用上面的 function (一个返回文件列表,第二个打开路径):
如何修改我的 function 以读取文件内容并将每个文件内容添加到 JSON 数组并返回 JSON 数组? 谢谢
根据您的评论答案,您正在寻找一种将文件的 json 内容解析为 javax.json- JsonArray
的方法。
答案是 class JsonReader
。 根据文档:
JsonReaderFactory factory = Json.createReaderFactory(...); JsonReader reader = factory.createReader(...); JsonStructure content = Jsonreader.read();
然后那个 JsonStructure 可以是一个 JsonArray (你可以在检查类之后强制转换它)。
它可能像这样工作(虽然我无法测试它):
public JSONArray getSchema()
{
String avroSchemaHDFSDir = "hdfs://hadoopcluster/schemas";
try(HdfsClient hdfsClient = new HdfsClient(nameNodeHosts, hadoopZks))
{
for(int i = 0; i < hdfsClient.listeFilesHdfs(avroSchemaHDFSDir).size(); i++)
{
String fileContent = hdfsClient.listeFilesHdfs(avroSchemaHDFSDir).get(i).toString();
hdfsClient.openHdfsPath(file);
JsonReaderFactory factory = Json.createReaderFactory(...);
JsonReader reader = factory.createReader(...);
JsonStructure content = Jsonreader.read();
if (content instanceof JsonArray) {
return (JsonArray) content;
}
}
}
catch(Exception e)
{
logger.debug("get the specified schema ", e.getMessage());
}
return null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.