1. ホーム
  2. java

[解決済み] "BEGIN_OBJECTを期待したが、1行目1列目でSTRINGだった"

2022-02-02 12:10:51

質問

このような方法があります。

public static Object parseStringToObject(String json) {
    String Object = json;
    Gson gson = new Gson();
    Object objects = gson.fromJson(object, Object.class);
    parseConfigFromObjectToString(object);
    return objects;
}

で、JSONをパースしたい。

public static void addObject(String IP, Object addObject) {
    try {
        String json = sendPostRequest("http://" + IP + ":3000/config/add_Object", ConfigJSONParser.parseConfigFromObjectToString(addObject));
        addObject = ConfigJSONParser.parseStringToObject(json);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

しかし、エラーメッセージが表示されます。

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException.JsonSyntaxException: 1行目1列目でBEGIN_OBJECTを期待しましたが、STRINGでした。

解決方法は?

JSON文字列を見なくても、エラーメッセージから、クラスのインスタンスにパースされる正しい構造でないことが分かります。

Gson は、JSON 文字列がオブジェクトの開始波括弧で始まっていることを期待しています。

{

しかし、あなたが渡した文字列は、オープンクォートで始まっています。

"