当前位置: 首页 > 知识库问答 >
问题:

从FilePart返回一个单(Java)

余弘毅
2023-03-14

uploadservice从REST API接收表示下面JSON内容的filepart

目标是从这个文件部件返回一个来构建一个JSONObject

这是发布的JSON:

{
"machineId" : "7",
"printJobId" : "123",
"timeStampStartPrintJob" : "10:23:15,253",
"timeStampEndPrintJob" : "12:50:16,577",
"optionalMetadata" : {}
}

这是我的代码

public class UploadService{

    public Mono<String> uploadSensorData(FilePart metaDataFile) {
        
        /*create + print a JSONObject*/
        JSONObject result = new JSONObject(metaDataFileContentToString(metaDataFile).toString().trim().charAt(0));          
        System.out.println(result);

    }

    /*convert FilePart to String*/
    private Mono<String> metaDataFileContentToString(FilePart metaDataFile) {
        return metaDataFile.content()
            .map(buffer -> buffer.toString(StandardCharsets.UTF_8))
            .collectList()
            .map(list -> String.join("", list));
    }

return null;

}

问题:我不确定我的方法MetadataFileContentToString是否正确。到目前为止,输出只显示JSON的第一个和最后一个花括号:{}

有没有其他方法可以从文件部分的字节中获得正确的?或者,创建JSONObject的.toString()方法可能是问题所在?

非常感谢您的提前点子!

共有1个答案

姚高韵
2023-03-14

你想要什么绳子?

如果您想要json的打印,请使用objectmapper::WriteValueAsString或类似的文件,或者是ToString

要获得单声道,请使用Mono::just

但是,您不应该在方法中创建,而应该是现有的一部分。这意味着您应该获得一个单声道并返回一个单声道,而您的函数只是将数据从一种类型映射到另一种类型。

public Mono<String> uploadSensorData(Mono<FilePart> metaDataFile) {
    return metaDataFile.map(FilePart::toString);
}
 类似资料:
  • 问题内容: 我们有一个表格,其形式为: 我们需要将其转化为。 是否有一个聪明的方法可以在一个SELECT语句中执行此操作(即不使用UNION)?列名称Value1,Value2和Value3是固定的且恒定的。 该数据库是oracle 9i。 问题答案: 这适用于Oracle 10g: 我认为Oracle 9i有递归查询吗?无论如何,我非常确定它具有CASE支持,因此即使它没有递归查询,也可以执行“

  • 问题内容: 我正在尝试使用Flask和请求构建一个简单的代理。代码如下: 除丢失了Elasticsearch的状态代码外,此方法有效。我尝试直接返回(a ),但这失败了 还有另一种简单的从Flask返回a的方法吗? 问题答案: 好的,找到它: 如果返回一个元组,则该元组中的项目可以提供额外的信息。这样的元组必须采用格式(响应,状态,标题)。状态值将覆盖状态代码,并且标头可以是其他标头值的列表或字典

  • 在下面的示例中,someObjects是一个集合。如果循环中的条件匹配,我试图返回true,但这似乎无法编译。然而,当我添加“return”时,它工作得很好。我需要解决的问题是什么? 编译错误 类型Iterable中的方法forEach(Consumer)不适用于参数((obj)->{})

  • 我遇到了一个问题,似乎无法使用fxml从javafx中的新表单返回值。 我试图有一个主要的形式,它有4个功能,与游戏的连接4开始游戏,查看玩家,查看游戏,查看玩家游戏 当我启动程序时,会弹出主菜单,然后我想单击“开始游戏”按钮。打开后,将提示输入用户1的信息。然后弹出一个关于玩家信息的新表单。 我遇到的问题是,单击accept按钮后,类中的变量变为null,我尝试通过instance get方法从

  • 问题内容: 我有两个文件:script1.py和script2.py。我需要从script1.py调用script2.py,然后将script2.py的值返回给script1.py。但是要注意的是script1.py实际上通过os运行script2.py。 script1.py: script2.py 如您所见,我能够将值输入到script2中,但不能返回到script1中。我怎样才能做到这一点?

  • 我的数据库中有两个表: 表1:购买物品 表1列出了购买的物品,表2每小时更新一次每件物品的当前价格。因此,从表2中可以清楚地看出,肉类最后一次交易是在2013年2月20日上午10点,而鱼类不是在同一天交易的,它是在2013年2月19日上午9点交易的,鸡肉是在2013年2月20日上午9点交易的。我想做的是,列出表1中的所有项目,并加入表2中各个项目的最后交易价格,如下所示: 这里应该应用什么类型的连