我的项目中正在使用改造,它完全可以正常工作。
但是现在已经出现了使用动态Json的需求,而动态Json的密钥仅为ID 我到处都进行了研究,没有发现任何可以帮助我的东西。
如何在类模型中“解析”此json?
这是一块Json
[
{
"1":{
"1":"Paulo, chamado para ser apóstolo de Jesus Cristo pela vontade de Deus, e o irmão Sóstenes,",
"2":"à igreja de Deus que está em Corinto, aos santificados em Cristo Jesus, chamados para serem santos, com todos os que em todo lugar invocam o nome de nosso Senhor Jesus Cristo, Senhor deles e nosso:",
"3":"Graça seja convosco, e paz, da parte de Deus nosso Pai, e do Senhor Jesus Cristo.",
"4":"Sempre dou graças a Deus por vós, pela graça de Deus que vos foi dada em Cristo Jesus;",
"5":"porque em tudo fostes enriquecidos nele, em toda palavra e em todo o conhecimento,",
"6":"assim como o testemunho de Cristo foi confirmado entre vós;",
"7":"de maneira que nenhum dom vos falta, enquanto aguardais a manifestação de nosso Senhor Jesus Cristo,",
"8":"o qual também vos confirmará até o fim, para serdes irrepreensíveis no dia de nosso Senhor Jesus Cristo.",
"9":"Fiel é Deus, pelo qual fostes chamados para a comunhão de seu Filho Jesus Cristo nosso Senhor.",
"10":"Rogo-vos, irmãos, em nome de nosso Senhor Jesus Cristo, que sejais concordes no falar, e que não haja dissensões entre vós; antes sejais unidos no mesmo pensamento e no mesmo parecer.",
"11":"Pois a respeito de vós, irmãos meus, fui informado pelos da família de Cloé que há contendas entre vós.",
"12":"Quero dizer com isto, que cada um de vós diz: Eu sou de Paulo; ou, Eu de Apolo; ou Eu sou de Cefas; ou, Eu de Cristo.",
"13":"será que Cristo está dividido? foi Paulo crucificado por amor de vós? ou fostes vós batizados em nome de Paulo?",
"14":"Dou graças a Deus que a nenhum de vós batizei, senão a Crispo e a Gaio;",
"15":"para que ninguém diga que fostes batizados em meu nome.",
"16":"É verdade, batizei também a família de Estéfanas, além destes, não sei se batizei algum outro.",
"17":"Porque Cristo não me enviou para batizar, mas para pregar o evangelho; não em sabedoria de palavras, para não se tornar vã a cruz de Cristo.",
"18":"Porque a palavra da cruz é deveras loucura para os que perecem; mas para nós, que somos salvos, é o poder de Deus.",
"19":"porque está escrito: Destruirei a sabedoria dos sábios, e aniquilarei a sabedoria o entendimento dos entendidos.",
"20":"Onde está o sábio? Onde o escriba? Onde o questionador deste século? Porventura não tornou Deus louca a sabedoria deste mundo?",
"21":"Visto como na sabedoria de Deus o mundo pela sua sabedoria não conheceu a Deus, aprouve a Deus salvar pela loucura da pregação os que crêem.",
"22":"Pois, enquanto os judeus pedem sinal, e os gregos buscam sabedoria,",
"23":"nós pregamos a Cristo crucificado, que é escândalo para os judeus, e loucura para os gregos,",
"24":"mas para os que são chamados, tanto judeus como gregos, Cristo, poder de Deus, e sabedoria de Deus.",
"25":"Porque a loucura de Deus é mais sábia que os homens; e a fraqueza de Deus é mais forte que os homens.",
"26":"Ora, vede, irmãos, a vossa vocação, que não são muitos os sábios segundo a carne, nem muitos os poderosos. nem muitos os nobres que são chamados.",
"27":"Pelo contrário, Deus escolheu as coisas loucas do mundo para confundir os sábios; e Deus escolheu as coisas fracas do mundo para confundir as fortes;",
"28":"e Deus escolheu as coisas ignóbeis do mundo, e as desprezadas, e as que não são, para reduzir a nada as que são;",
"29":"para que nenhum mortal se glorie na presença de Deus.",
"30":"Mas vós sois dele, em Cristo Jesus, o qual para nós foi feito por Deus sabedoria, e justiça, e santificação, e redenção;",
"31":"para que, como está escrito: Aquele que se gloria, glorie-se no Senhor."
}
},
{
"2":{
"1":"E eu, irmãos, quando fui ter convosco, anunciando-vos o testemunho de Deus, não fui com sublimidade de palavras ou de sabedoria.",
"2":"Porque nada me propus saber entre vós, senão a Jesus Cristo, e este crucificado.",
"3":"E eu estive convosco em fraqueza, e em temor, e em grande tremor.",
"4":"A minha linguagem e a minha pregação não consistiram em palavras persuasivas de sabedoria, mas em demonstração do Espírito de poder;",
"5":"para que a vossa fé não se apoiasse na sabedoria dos homens, mas no poder de Deus.",
"6":"Na verdade, entre os perfeitos falamos sabedoria, não porém a sabedoria deste mundo, nem dos príncipes deste mundo, que estão sendo reduzidos a nada;",
"7":"mas falamos a sabedoria de Deus em mistério, que esteve oculta, a qual Deus preordenou antes dos séculos para nossa glória;",
"8":"a qual nenhum dos príncipes deste mundo compreendeu; porque se a tivessem compreendido, não teriam crucificado o Senhor da glória.",
"9":"Mas, como está escrito: As coisas que olhos não viram, nem ouvidos ouviram, nem penetraram o coração do homem, são as que Deus preparou para os que o amam.",
"10":"Porque Deus no-las revelou pelo seu Espírito; pois o Espírito esquadrinha todas as coisas, mesmos as profundezas de Deus.",
"11":"Pois, qual dos homens entende as coisas do homem, senão o espírito do homem que nele está? assim também as coisas de Deus, ninguém as compreendeu, senão o Espírito de Deus.",
"12":"Ora, nós não temos recebido o espírito do mundo, mas sim o Espírito que provém de Deus, a fim de compreendermos as coisas que nos foram dadas gratuitamente por Deus;",
"13":"as quais também falamos, não com palavras ensinadas pela sabedoria humana, mas com palavras ensinadas pelo Espírito Santo, comparando coisas espirituais com espirituais.",
"14":"Ora, o homem natural não aceita as coisas do Espírito de Deus, porque para ele são loucura; e não pode entendê-las, porque elas se discernem espiritualmente.",
"15":"Mas o que é espiritual discerne bem tudo, enquanto ele por ninguém é discernido.",
"16":"Pois, quem jamais conheceu a mente do Senhor, para que possa instruí-lo? Mas nós temos a mente de Cristo."
}
},
{
"3":{
"1":"E eu, irmãos não vos pude falar como a espirituais, mas como a carnais, como a criancinhas em Cristo.",
"2":"Leite vos dei por alimento, e não comida sólida, porque não a podíeis suportar; nem ainda agora podeis;",
"3":"porquanto ainda sois carnais; pois, havendo entre vós inveja e contendas, não sois porventura carnais, e não estais andando segundo os homens?",
"4":"Porque, dizendo um: Eu sou de Paulo; e outro: Eu de Apolo; não sois apenas homens?",
"5":"Pois, que é Apolo, e que é Paulo, senão ministros pelos quais crestes, e isso conforme o que o Senhor concedeu a cada um?",
"6":"Eu plantei; Apolo regou; mas Deus deu o crescimento.",
"7":"De modo que, nem o que planta é alguma coisa, nem o que rega, mas Deus, que dá o crescimento.",
"8":"Ora, uma só coisa é o que planta e o que rega; e cada um receberá o seu galardão segundo o seu trabalho.",
"9":"Porque nós somos cooperadores de Deus; vós sois lavoura de Deus e edifício de Deus.",
"10":"Segundo a graça de Deus que me foi dada, lancei eu como sábio construtor, o fundamento, e outro edifica sobre ele; mas veja cada um como edifica sobre ele.",
"11":"Porque ninguém pode lançar outro fundamento, além do que já está posto, o qual é Jesus Cristo.",
"12":"E, se alguém sobre este fundamento levanta um edifício de ouro, prata, pedras preciosas, madeira, feno, palha,",
"13":"a obra de cada um se manifestará; pois aquele dia a demonstrará, porque será revelada no fogo, e o fogo provará qual seja a obra de cada um.",
"14":"Se permanecer a obra que alguém sobre ele edificou, esse receberá galardão.",
"15":"Se a obra de alguém se queimar, sofrerá ele prejuízo; mas o tal será salvo todavia como que pelo fogo.",
"16":"Não sabeis vós que sois santuário de Deus, e que o Espírito de Deus habita em vós?",
"17":"Se alguém destruir o santuário de Deus, Deus o destruirá; porque sagrado é o santuário de Deus, que sois vós.",
"18":"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio.",
"19":"Porque a sabedoria deste mundo é loucura diante de Deus; pois está escrito: Ele apanha os sábios na sua própria astúcia;",
"20":"e outra vez: O Senhor conhece as cogitações dos sábios, que são vãs.",
"21":"Portanto ninguém se glorie nos homens; porque tudo é vosso;",
"22":"seja Paulo, ou Apolo, ou Cefas; seja o mundo, ou a vida, ou a morte; sejam as coisas presentes, ou as vindouras, tudo é vosso,",
"23":"e vós de Cristo, e Cristo de Deus."
}
},
我已经拥有使用Retrofit运行corertamente的所有服务。
我的问题是如何解析此json 我的班级模型是什么样的?
这是我拥有的另一项服务,但是在这种情况下,我已经知道了json的字段
public class Biblia {
@SerializedName("id")
private int id;
@SerializedName("categoria")
private String categoria;
@SerializedName("descricao")
private String descricao;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
活动
apiInterface = ApiClient.getClient().create(ApiInterface.class);
Call<List<Biblia>> call = apiInterface.getBiblia(Integer.parseInt(Constants.APP_ID));
call.enqueue(new Callback<List<Biblia>>() {
@Override
public void onResponse(Call<List<Biblia>> call, Response<List<Biblia>> response) {
if(response.isSuccessful()) {
contacts = response.body();
cateRecyclerAdapter = new BibliaAdapter(contacts,getActivity());
recyclerView.setAdapter(cateRecyclerAdapter);
cateRecyclerAdapter.notifyDataSetChanged();
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
/* DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
linearLayoutManager.getOrientation());*/
recyclerView.setLayoutManager(linearLayoutManager);
//recyclerView.addItemDecoration(dividerItemDecoration);
}else{
}
}
对于英语以及我如何试图解决自己的问题感到抱歉。 但是,真正需要知道的是,该json经过翻新
答案 0 :(得分:1)
这是一个特别奇怪的JSON响应。让我们将其修剪一下,以便可以看到整体结构。
[
{
"1":{
"1":"Paulo, chamado para ser apóstolo de Jesus Cristo pela vontade de Deus, e o irmão Sóstenes,",
"2":"à igreja de Deus que está em Corinto, aos santificados em Cristo Jesus, chamados para serem santos, com todos os que em todo lugar invocam o nome de nosso Senhor Jesus Cristo, Senhor deles e nosso:",
...
}
},
{
"2":{
"1":"E eu, irmãos, quando fui ter convosco, anunciando-vos o testemunho de Deus, não fui com sublimidade de palavras ou de sabedoria.",
"2":"Porque nada me propus saber entre vós, senão a Jesus Cristo, e este crucificado.",
...
}
},
...
}
在顶层,这是对象列表。每个中级对象都有一个字符串对象对。每个内部对象都有许多字符串-字符串对。
每次使用“动态键”时,您都可以考虑使用Map<String, Object>
而不是预定义的Java类。我们将必须对中级对象和最里面的对象执行此操作,因为它们都具有动态键。
这意味着整体结构为List<Map<String, Map<String, String>>>
。遗憾的是,我们不能在定义方面做得更好,但这是现实世界,有时情况很糟糕。
因此,创建一个Call<List<Map<String, Map<String, String>>>>
,然后您可以(从我们的示例中)获取此字符串:
"Paulo, chamado para ser apóstolo de Jesus Cristo pela vontade de Deus, e o irmão Sóstenes,
通过索引到列表和地图:
Map<String, Map<String, String>> firstMidLevel = response.body.get(0);
Map<String, String> inner = firstMidLevel.get("1");
String paulo = inner.get("1");