Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从S3SelectObjectContent解析JSON_Java_Amazon S3 - Fatal编程技术网

Java 从S3SelectObjectContent解析JSON

Java 从S3SelectObjectContent解析JSON,java,amazon-s3,Java,Amazon S3,我试图根据s3 selectObjectContent之后得到的响应创建一个对象。但是我看到了从响应创建inputstream的问题。响应似乎以最后指定的分隔符结束,这导致将Inputstream转换为JSON对象或使用ObjectMapper时出现问题 我的请求对象如下: SelectObjectContentRequest request = new SelectObjectContentRequest(); request.

我试图根据s3 selectObjectContent之后得到的响应创建一个对象。但是我看到了从响应创建inputstream的问题。响应似乎以最后指定的分隔符结束,这导致将Inputstream转换为JSON对象或使用ObjectMapper时出现问题

我的请求对象如下:

             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"));