2014-11-25 2 views
1
>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 코드입니다. ..스마트 시트에서 셀 업데이트하기 (자바)

그것은 오류 반환 : -

"는 요청을 구문 분석 할 수 없습니다 다음 오류가 발생

: 서버 HTTP 응답 코드를 반환 요청 몸 때 java.io.IOException 배열 JSON 개체 또는 JSON 중 하나이어야합니다 : 400의 경우 URL : https://api.smartsheet.com/1.1/row/row_id/cells "

row_id에 Long 값이 있습니다.

아무도 도와 줄 수 있습니까?

답변

2

Update Row Cells 엔드 포인트를 사용하여 셀에 값을 추가하는 것처럼 보입니다. 이 엔드 포인트를 사용할 때 Smartsheet API는 요청 본문이 단일 셀 객체가 아니라 셀 배열로 기대됩니다.

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

당신은 또한 Smartsheet Java SDK을 사용할 수

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

는이 같은 배열에 객체를 포장 할 때 :처럼 경우

는 귀하의 요청에 몸이 보인다. SDK를 사용하면 당신은 단지 보조 노트로

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

는,이 엔드 포인트가 최근에 사용되지 않습니다 다음과 통화를해야합니다, 우리는 당신이 Modify Row 엔드 포인트 사용 enourage :이 엔드 포인트에 대한 PUT /sheet/{sheetId}/row/{rowId}

당신의 요청 본문은 셀 배열이 행 개체로 래핑되므로 약간만 수정됩니다.

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

고마워요. 그것은 일했다!! – user3407635

관련 문제