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"
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 № 1o 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 (...) { ... }