如何在 java 中创建 JSONArray
How create a JSONArray in java
我有 2 个 java 函数:
listeFilesHdfs
return 存储在 HDFS 中的文件列表,例如:
如果你备注一下,HDFS里面存储的文件内容是JSON格式,例如:
{
"name":"Name",
"type":"string"
},
{
"name":"Version",
"type":"string"
},
{
"name":"r_service",
"type":"string"
},
{
"name":"r_timestamp",
"type":"long"
},
我创建了下面的函数来调用上面的两个函数(一个 return 文件列表和第二个打开路径):
如何修改我的函数以读取文件内容并将每个文件内容添加到 JSON 数组和 return JSON 数组?
谢谢
根据您的评论回答,您正在寻找一种方法将文件的 json 内容解析为 javax.json-JsonArray
.
答案是classJsonReader
。
根据文档:
JsonReaderFactory factory = Json.createReaderFactory(...);
JsonReader reader = factory.createReader(...);
JsonStructure content = Jsonreader.read();
然后 JsonStructure 可以是 JsonArray(您可以在检查 class 后转换为它)。
它可能会像这样工作(虽然我无法测试):
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;
}
我有 2 个 java 函数:
listeFilesHdfs
return 存储在 HDFS 中的文件列表,例如:
如果你备注一下,HDFS里面存储的文件内容是JSON格式,例如:
{
"name":"Name",
"type":"string"
},
{
"name":"Version",
"type":"string"
},
{
"name":"r_service",
"type":"string"
},
{
"name":"r_timestamp",
"type":"long"
},
我创建了下面的函数来调用上面的两个函数(一个 return 文件列表和第二个打开路径):
如何修改我的函数以读取文件内容并将每个文件内容添加到 JSON 数组和 return JSON 数组? 谢谢
根据您的评论回答,您正在寻找一种方法将文件的 json 内容解析为 javax.json-JsonArray
.
答案是classJsonReader
。
根据文档:
JsonReaderFactory factory = Json.createReaderFactory(...); JsonReader reader = factory.createReader(...); JsonStructure content = Jsonreader.read();
然后 JsonStructure 可以是 JsonArray(您可以在检查 class 后转换为它)。
它可能会像这样工作(虽然我无法测试):
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;
}