newCell.setColumnId(4303755236665220l); > -6ren">
gpt4 book ai didi

java - 更新 smartsheet 中的单元格 (java)

转载 作者:行者123 更新时间:2023-11-30 03:39:22 24 4
gpt4 key购买 nike

>Cell newCell = new Cell();
>newCell.setValue("no way");
>newCell.setColumnId(4303755236665220l);
>
> connection = (HttpURLConnection) new >URL("https://api.smartsheet.com/1.1/row/{row_id}/cells").openConnection();
>connection.setRequestMethod("PUT");
>connection.addRequestProperty("Authorization", "Bearer " + accessToken);
>connection.addRequestProperty("Content-Type", "application/json");
>connection.setDoOutput(true);
>
>
>mapper.writeValue(connection.getOutputStream(), newCell);
>mapper.readValue(connection.getInputStream(), new TypeReference<Result<Cell>>() {});
>
>System.out.println("cell added.");

这是我的 Java 代码,用于将单元格添加到指定行。

它返回一个错误:-

“无法解析请求。发生以下错误:请求正文必须是 JSON 对象或 JSON 数组。java.io.IOException:服务器返回 HTTP 响应代码:400 对于 URL:https://api.smartsheet.com/1.1/row/row_id/cells

row_id 具有长整型值。

有人可以帮忙吗?

最佳答案

您似乎正在使用 Update Row Cells端点向您的单元格添加值。使用此端点时,Smartsheet API 期望请求正文作为单元格数组,而不仅仅是单个单元格对象。

就您而言,您的请求正文如下所示:

{"columnId": 4303755236665220l, "value": "no way"}

当您想将该对象包装在像这样的数组中时:

[{"columnId": 4303755236665220l, "value": "no way"} ]

您还可以使用Smartsheet Java SDK 。使用 SDK,您只需要进行以下调用

 List<Cell> cells = new Cell.UpdateRowCellsBuilder().addCell(4303755236665220l, "no way").build();
smartsheet.rows().updateCells({row_Id}, cells);

顺便说一句,此端点最近已被弃用,我们鼓励您使用 Modify Row端点:PUT/sheet/{sheetId}/row/{rowId}

对于此端点,您的请求正文只会稍微修改,因为您的单元格数组将包装在行对象中,如下所示:

{"cells":[{"columnId": 4303755236665220l, "value": "no way"}]}

关于java - 更新 smartsheet 中的单元格 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com