Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $

オープン
#163 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

@15666668904 がすでに取り組んでいます。

2026年4月5日 から。

  • #181 @15666668904 による — オープン

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
java
領域
api

調査の方向性

ApprovalService$ExternalInstance.create から /open-apis/approval/v4/external_instances に対して呼び出される UnmarshalRespUtil.unmarshalResp から始めます。Gson が JsonSyntaxException を発生させたときに HTTP レスポンスボディがどのように処理されるかを追跡し、そのうえで、失敗時にデシリアライズエラーだけを公開するのではなく、返されたレスポンス内容が保持またはログ出力されることを確認します。

索引モデルが issue の本文から書いたものです。

説明

背景
需要将自研系统中的审批流数据同步到飞书审批中心。

资料
使用的SDK:com.larksuite.oapi:oapi-sdk:2.0.20

报错
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
at com.google.gson.Gson.fromJson(Gson.java:922)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:836)
at com.google.gson.Gson.fromJson(Gson.java:808)
at com.lark.oapi.core.utils.UnmarshalRespUtil.unmarshalResp(UnmarshalRespUtil.java:22)
at com.lark.oapi.service.approval.v4.ApprovalService$ExternalInstance.create(ApprovalService.java:587)

期望
先看代码
// 反序列化
CreateExternalInstanceResp resp = UnmarshalRespUtil.unmarshalResp(httpResponse, CreateExternalInstanceResp.class);
if (resp == null) {
log.error(String.format(
"%s,callError,req=%s,respHeader=%s,respStatusCode=%s,respBody=%s,", "/open-apis/approval/v4/external_instances"
, Jsons.DEFAULT.toJson(req), Jsons.DEFAULT.toJson(httpResponse.getHeaders()),
httpResponse.getStatusCode(), new String(httpResponse.getBody(),
StandardCharsets.UTF_8)));
throw new IllegalArgumentException("The result returned by the server is illegal");
}
UnmarshalRespUtil.unmarshalResp方法在执行时并没有做异常处理,导致CreateExternalInstanceResp resp = UnmarshalRespUtil.unmarshalResp(httpResponse, CreateExternalInstanceResp.class);执行时,直接抛出异常,不会继续向下执行,并打印出返回结果日志。

希望完善这个BUG,抛出异常可以,但应该要输出返回结果是什么,而不是JSON序列化的错误。

主要言語
Java
スター
311
フォーク
115
平均マージ
19分
マージ済み PR(30日)
2

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

larksuite/oapi-sdk-java のほかの issue

larksuite/oapi-sdk-java の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。