Java 从S3SelectObjectContent解析JSON
我试图根据s3 selectObjectContent之后得到的响应创建一个对象。但是我看到了从响应创建inputstream的问题。响应似乎以最后指定的分隔符结束,这导致将Inputstream转换为JSON对象或使用ObjectMapper时出现问题 我的请求对象如下:Java 从S3SelectObjectContent解析JSON,java,amazon-s3,Java,Amazon S3,我试图根据s3 selectObjectContent之后得到的响应创建一个对象。但是我看到了从响应创建inputstream的问题。响应似乎以最后指定的分隔符结束,这导致将Inputstream转换为JSON对象或使用ObjectMapper时出现问题 我的请求对象如下: SelectObjectContentRequest request = new SelectObjectContentRequest(); request.
SelectObjectContentRequest request = new SelectObjectContentRequest();
request.setBucketName("<<bucket>>);
request.setKey("<<key>>");
request.setExpression("SELECT * FROM S3Object[*][*] s");
request.setExpressionType(ExpressionType.SQL);
InputSerialization inputSerialization = new InputSerialization();
JSONInput jsonInput = new JSONInput();
jsonInput.setType("DOCUMENT");
inputSerialization.setJson(jsonInput);
inputSerialization.setCompressionType(CompressionType.NONE);
request.setInputSerialization(inputSerialization);
OutputSerialization outputSerialization = new OutputSerialization();
JSONOutput jsonOutput = new JSONOutput();
jsonOutput.setRecordDelimiter(",");
outputSerialization.setJson(jsonOutput);
request.setOutputSerialization(outputSerialization);
return request;
InputSteram conversion :
InputStream is = result.getPayload().getRecordsInputStream(
new SelectObjectContentEventVisitor() {
@Override
public void visit(SelectObjectContentEvent.EndEvent endEvent) {
requestComplete.set(true);
}
});
上述操作失败,因为EOF是一个我得到的错误是位置0处的文件意外标记结束 我有一个解决上述问题的办法,但我真的不喜欢它,并寻找一个更干净的方法。谢谢你的帮助。提前谢谢
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(new InputStreamReader(is, "UTF-8"));