/ / Esperado BEGIN_OBJECT mas era STRING no Gson - java, json, gson

Esperado BEGIN_OBJECT, mas era STRING no Gson - java, json, gson

Oi eu estou tente analisar alguns JSON por GSON que usou o número como a chave. Eu faço referência ao post, mas dá um erro e eu não sei por quê.

Como converter objetos json com o número como chave de campo em Java?

Eu também vejo o post, mas ainda não consigo resolver o meu problema.

"Esperado BEGIN_OBJECT, mas estava em STRING na linha 1, coluna 1"

insira a descrição da imagem aqui

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;

public class Main {
public static void main(String[] args) {
Gson gson = new Gson();

Type type = new TypeToken<HashMap<String, HashMap<String, String>>>() {}.getType();
Map<String, Map<String, String>> map = gson.fromJson("./src/main/resources/input.json", type);

}
}

O arquivo json é

{
"1":{"id":"1"}
}

Respostas:

3 para resposta № 1

o fromJson o método não recebe um nome de arquivo, ele recebe um JSON real: olhe para os docs aqui

Mas existe um sobrecarga que recebe um Reader em vez disso:

try (FileReader reader = new FileReader("./src/main/resources/input.json"))
{
map = gson.fromJson(reader, type)
}
catch (...) { ... }