繁体   English   中英

如何在 java 中创建 JSONArray

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM