Como que eu recupero informações de um JSON ?

HAHA, você pensou que eu não consegui pegar informações e quer me indicar Gson, Retrofit, OkHttp, Volley ou qualquer outro que você usa não é mesmo?

Mas aí que está, EU CONSEGUI TRAZER INFORMAÇÕES SIM.
O problema é que não está como eu quero.
Vou mandar um trecho do código, para que seja mais fácil explicar. Saca só:

btnMapSearchConfirmarTrajeto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String nomeOrigemCorrida="Rua fulano", nomeDestinoCorrida="Rua beltrano", distancia="Km", valorTotal="R$ 0";
                double latOrigem=0, lngOrigem=1, latDestino=2, lngDestino=3;
                confirmaTrajeto(nomeOrigemCorrida, nomeDestinoCorrida, distancia, valorTotal, latOrigem, lngOrigem, latDestino, lngDestino);
            }
        });


// MÉTODO
    public void confirmaTrajeto(String nomeOrigemCorrida, String nomeDestinoCorrida, String distancia, String valorTotal,
                                double latOrigem, double lngOrigem, double latDestino, double lngDestino) {
        bundleNext.putString("nomeOrigemCorrida", nomeOrigemCorrida);
        bundleNext.putString("nomeDestinoCorrida", nomeDestinoCorrida);
        bundleNext.putString("quantidadeDistanciaCorrida", distancia);
        bundleNext.putString("valorTotalCorrida", valorTotal);
        // ORIGEM
        bundleNext.putDouble("latitude_origem", latOrigem);
        bundleNext.putDouble("longitude_origem", lngOrigem);
        // DESTINO
        bundleNext.putDouble("latitude_destino", latDestino);
        bundleNext.putDouble("longitude_destino", lngDestino);
        //
        Intent intent = new Intent(getApplicationContext(), FrmPrincipalMapConfirmaCorrida.class);
        intent.putExtras(bundleNext);
        //
        startActivity(intent);
    }

PROBLEMA:
Como estão vendo, preciso de latitude e longitude (como eu disse, eu já pego), mas é duas vezes que preciso. Logo, eu odiaria repetir código

Pensei assim comigo "ah, é só criar um método que retorna o que eu quero do JSON"
Não.
Não deu.
Eu tentei, de verdade, por duas semanas.
Até me render ao fórum, porque vocês são os caras

Estou usando OkHttp. Eu tirei o código que traz informação do JSON, mas basicamente é isso aí:

Callback callLatitude = new Callback() {
        @Override
        public void onFailure(Call call, IOException e) { frmDados.print("onMapSearch:onFailure->" + e.getMessage().toString()); }
        //
        @Override
        public void onResponse(Call call, Response response) throws IOException {
            try {
                if (response != null) {
                    opcoes.clear(); // é uma lista, beleza?
                    //
                    String json = response.body().string();
                    JSONObject jsonObject = new JSONObject(json); // captura tudo
                    //
                    JSONArray results = jsonObject.getJSONArray("results"); // tem uma key results no JSON e tal
                    JSONObject address = results.getJSONObject(0);
                    // geometry
                    JSONArray geometry = address.getJSONArray("geometry");
                    // location
                    JSONObject location = geometry.getJSONObject(0);
                    // latitude
                    // ELE TRAZ INFORMAÇÃO AQUI, MAS COMO EU FAÇO
                    // PRA LEVAR PRA FORA DAQUI? EU QUERO PREENCHER
                    // AQUELE MÉTODO CARA  :(
                } else {
                    frmDados.print("onMapSearch:else[response=null]");
                    frmDados.shortToast(getApplicationContext(), "[404-1] Local não encontrado. Tente por outro nome.");
                }
            } catch(JSONException e){
                frmDados.shortToast(getApplicationContext(), "[404-2] Local não encontrado. Tente por outro nome");
                frmDados.print(e.getMessage().toString());
            }
        }
    };

Ignore o frmDados, é uma classe auxiliar que eu criei, ela não influencia no código, é apenas informativa.

Se você não mostrar como é o seu JSON fica difícil.

Você pode chamar o método get e pegar o valor associado a chave/atributo

jsonObject.get("atributo").toString();

Não sei se entendi certo, segue.

Callback callLatitude = new Callback() {
            @Override
            public void onFailure(Call call, IOException e) { frmDados.print("onMapSearch:onFailure->" + e.getMessage().toString()); }
            //
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                try {
                    if (response != null) {
                        opcoes.clear(); // é uma lista, beleza?
                        //
                        String json = response.body().string();
                        JSONObject jsonObject = new JSONObject(json); // captura tudo
                        //
                        JSONArray results = jsonObject.getJSONArray("results"); // tem uma key results no JSON e tal
                        JSONObject address = results.getJSONObject(0);
                        // geometry
                        JSONArray geometry = address.getJSONArray("geometry");
                        // location
                        JSONObject location = geometry.getJSONObject(0);
                        
                       //coloca o json em algum atributo da Activity/Classe 
                       // supondo que a Activity/Classe atual possua o seguinte atributo
                      // private String variavelTeste;  

                        ActivityAtual.this.variavelTeste = location.toString();

                    } else {
                        frmDados.print("onMapSearch:else[response=null]");
                        frmDados.shortToast(getApplicationContext(), "[404-1] Local não encontrado. Tente por outro nome.");
                    }
                } catch(JSONException e){
                    frmDados.shortToast(getApplicationContext(), "[404-2] Local não encontrado. Tente por outro nome");
                    frmDados.print(e.getMessage().toString());
                }
            }
        };

Agradeço a quem respondeu, mesmo
Mas creio que não me expressei bem…
@Mike , eu não posso exibir o JSON, mas estou certo de que sabe como um JSON é. A questão não é o JSON e sim a informação sair do método onResponse para preencher outra variável

@programador1225 Grato pelo exemplo, mas infelizmente já tinha tentado dessa maneira, mas não funciona. Digo, a variável permanece nula/em branco

Não precisava realmente mostrar como é, apenas simulava (caso fosse necessário):

{
    "glossary": {
        "title": "example glossary",
		"GlossDiv": {
            "title": "S",
			"GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
					"SortAs": "SGML",
					"GlossTerm": "Standard Generalized Markup Language",
					"Acronym": "SGML",
					"Abbrev": "ISO 8879:1986",
					"GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
						"GlossSeeAlso": ["GML", "XML"]
                    },
					"GlossSee": "markup"
                }
            }
        }
    }
}

Da para pegar o valor do JSON com anotação ou “andando pelo seu corpo”

Seria essa linha?

ActivityAtual.this.variavelTeste = location.toString();
ActivityAtual activityAtual = new ActivityAtual();
//Caso a variável seja acessível
activityAtual.variavelTeste = location.toString();

/**
 *Caso o acesso a variável seja restrito
 *e o único modo de acessar seja setter dela
 */
activyAtual.setVariavelTeste(location.toString());