Android 如何解析此JSON并在mainactivity中检索数据并将其设置为recyclerview
这是我的JSON数据,我如何解析它并将此数据设置为适配器,以便它可以正常工作并在recycler视图上运行。问题主要发生在适配器部分无法设置两个不同的数据列表,我使用两个模型类一个父模型和第二个子模型 这是我的适配器代码Android 如何解析此JSON并在mainactivity中检索数据并将其设置为recyclerview,android,arrays,json,parsing,android-recyclerview,Android,Arrays,Json,Parsing,Android Recyclerview,这是我的JSON数据,我如何解析它并将此数据设置为适配器,以便它可以正常工作并在recycler视图上运行。问题主要发生在适配器部分无法设置两个不同的数据列表,我使用两个模型类一个父模型和第二个子模型 这是我的适配器代码 { "data": [ { "0": [ [ { "fans_id": "2", "ans": "ans",
{
"data": [
{
"0": [
[
{
"fans_id": "2",
"ans": "ans",
"qst_id": "15",
"ans_uid": "20",
"ans_date": "2017-09-05 22:13:58"
},
{
"fans_id": "3",
"ans": "8770577495",
"qst_id": "15",
"ans_uid": "20",
"ans_date": "2017-09-09 03:23:51"
}
]
],
"forum_id": "15",
"qst": "cxvcxv",
"qst_description": "xcvcx\n",
"qst_uid": "20",
"q_status": "Enable",
"user_id": "20",
"univer_id": "1",
"fullname": "Deepak Verma",
"branchid": "10",
"semid": "1",
"collegeid": "1",
"mobile": "9685318196",
"bio": "",
"enrollno": "",
"username": "",
"password": "e10adc3949ba59abbe56e057f20f883e",
"u_status": "Enable",
"user_image": "user.png",
"loginwith": "",
"otp": ""
}
]
}
公共类适配器理论扩展了RecyclerView.Adapter{
私人语境;
私人充气机;
List ListTheroyData=Collections.emptyList();
模型电流;
int currentPos=0;
意图;
公共适配器理论(上下文,列表理论数据){
this.context=上下文;
this.listtheorydata=listtheorydata;
充气器=充气器。从(上下文);
}
@凌驾
公共适配器.Viewholder onCreateViewHolder(ViewGroup父级,int-viewType){
视图=充气机。充气(R.layout.View\u理论,父,假);
Viewholder=新的Viewholder(视图);
报税表持有人;
}
@凌驾
public void onBindViewHolder(适配器_.Viewholder,最终int位置){
最终持票人理论持票人=(持票人)持票人;
模型\理论电流=listtheorydata.get(位置);
theoryholder.TheoryTitle.setText(当前的mt_title);
最后一个字符串title=Html.fromHtml(current.mt_title.toString();
最终字符串理论=Html.fromHtml(current.myheory.toString();
最后一个字符串image=Html.fromHtml(current.myheory+“我建议您为这个json创建一个模型类,然后使用gson库将其解析为模型,然后您可以在recyclerview中轻松使用该模型 您可以通过以下链接下载jar文件来添加gson库:
是的,您可以从这里()生成一个模型类,并使用Gson库访问数据。问题是我无法解析从fans\u id开始的嵌套数组。我不知道如何解析嵌套的JsonArray和对象。请提供一个示例以供更好地理解。提前感谢
public class Adapter_theory extends RecyclerView.Adapter<Adapter_theory.Viewholder> {
private Context context;
private LayoutInflater inflater;
List<Model_theory> listtheorydata= Collections.emptyList();
Model_theory current;
int currentPos=0;
Intent intent;
public Adapter_theory(Context context, List<Model_theory> listtheorydata) {
this.context = context;
this.listtheorydata = listtheorydata;
inflater= LayoutInflater.from(context);
}
@Override
public Adapter_theory.Viewholder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=inflater.inflate(R.layout.view_theory, parent,false);
Viewholder holder=new Viewholder(view);
return holder;
}
@Override
public void onBindViewHolder(Adapter_theory.Viewholder holder, final int position) {
final Viewholder theoryholder = (Viewholder) holder;
Model_theory current = listtheorydata.get(position);
theoryholder.theorytittle.setText(current.mt_tittle);
final String title = Html.fromHtml(current.mt_tittle).toString();
final String theory = Html.fromHtml(current.myheory).toString();
final String image = Html.fromHtml(current.myheory + "<img src=\"http://consoledude.in/ckfinder/userfiles/images/").toString();
final String secondimage = current.getMyimages();
theoryholder.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
theoryholder.btn.toggle();
}
});
theoryholder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Model_theory current = listtheorydata.get(position);
intent = new Intent(context,TheoryDetailActivity.class);
intent.putExtra("t_title",title);
intent.putExtra("theory",theory);
intent.putExtra("second",secondimage);
intent.putExtra("abc",image);
context.startActivity(intent);
((Activity)context).finish();
}
});
}
@Override
public int getItemCount() {
return listtheorydata.size() ;
}
public class Viewholder extends RecyclerView.ViewHolder {
TextView theorytittle;
PlayPauseView btn;
public Viewholder(View itemView) {
super(itemView);
theorytittle = (TextView)itemView.findViewById(R.id.theorytittle);
btn = (PlayPauseView)itemView.findViewById(R.id.play_pause_view);
}
}
}