首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何通过匹配来自两个API的ids,将来自两个JSON API的响应查看到单个回收器视图适配器中?

如何通过匹配来自两个API的ids,将来自两个JSON API的响应查看到单个回收器视图适配器中?
EN

Stack Overflow用户
提问于 2021-02-22 09:39:40
回答 2查看 100关注 0票数 1

我从两个不同的JSON API中得到了响应,其中id对象在两个API中都是通用的。我想知道第一个响应中的id在第二个响应中出现了多少次。例如,如果来自第一个响应的计数“642”在第二个响应中出现两次,则id= =2。对于每个id,然后将其设置在回收器视图的侧面,用于txtCountNo内部适配器的每个位置。

第一个响应:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{
    "id": "642"
    "Full_name": "Harsh",
},
{
  
    "id": "91"
    "Full_name": "Rahul",
}]

第二个响应:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{
    "Uniq_id": "36",
    "id": "91"
},
{
    "Uniq_id": "37",
    "id": "642"
},
{
    "Uniq_id": "38",
    "id": "642"
},
{
    "Uniq_id": "39",
    "id": "91"
}]

我已经在Adapter中使用以下代码显示了名称:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class PhotographyAdapter extends RecyclerView.Adapter<PhotographyAdapter.MyViewHolder> {
List<PhotographyModel> photographyList;


public PhotographyAdapter(List<PhotographyModel> photographyList, Context context) {
    this.photographyList = photographyList;

    this.context = context;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.item_feed_post, parent, false);
    return new MyViewHolder(view);
}

@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {


    holder.txtUserName.setText(photographyList.get(position).getFullName())
   }


@Override
public int getItemCount() {
    return photographyList.size();
}


public class MyViewHolder extends RecyclerView.ViewHolder {

    
    TextView txtUserName,txtCountNo;


    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        
        txtUserName = itemView.findViewById(R.id.txtUserName);
      
        txtCountNo = itemView.findViewById(R.id.txtCountNo);


    }
}}

摄影模型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class PhotographyModel{

@SerializedName("Full_name")
@Expose
private String fullName;
@SerializedName("id")
@Expose
private String Id;

public String getFullName() {
    return fullName;
}

public void setFullName(String fullName) {
    this.fullName = fullName;
} 

public String getId() {
    return Id;
}

public void setId(String Id) {
    this.Id =Id;
}}

Like模型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class LikeModel {

@SerializedName("Uniq_id")
@Expose
private String uniqId;

@SerializedName("id")
@Expose
private String Id;


public String getUniqId() {
    return uniqId;
}

public void setUniqId(String uniqId) {
    this.uniqId = uniqId;
}



public String getId() {
    return Id;
}

public void setId(String Id) {
    this.Id = Id;
}}

调用第一个API:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  public void getFirstApiResponse() {
    progressBar.setVisibility(View.VISIBLE);
    Call<List<PhotographyModel>> ourSupplierResponseCall = RestClient.getClient().getPhotographyPosts();
    ourSupplierResponseCall.enqueue(new Callback<List<PhotographyModel>>() {
        @Override
        public void onResponse(Call<List<PhotographyModel>> call, Response<List<PhotographyModel>> response) {
            if (response.isSuccessful()) {
                progressBar.setVisibility(View.GONE);
                Log.d(TAG, "onResponse: " + response.toString());

                List<Photography> photographyList1;
photographyAdapter = new PhotographyAdapter(photographyList1,getContext());
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity());
    rvPhotographyFragment.setLayoutManager(layoutManager);
    rvPhotographyFragment.setAdapter(photographyAdapter);


            }
        }

        @Override
        public void onFailure(Call<List<PhotographyModel>> call, Throwable t) {
            progressBar.setVisibility(View.GONE);
            Toast.makeText(getActivity(), "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();

        }
    });
}

调用第二个API:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   public void getSecondApiResponse() {
    Call<List<Like>> responseCall = RestClient.getClient().getLikes();
    responseCall.enqueue(new Callback<List<Like>>() {
        @Override
        public void onResponse(Call<List<Like>> call, Response<List<Like>> responseLike) {
            responseLike.body();
            Log.d(TAG, "onResponse: " + responseLike.body().toString());

        }

        @Override
        public void onFailure(Call<List<Like>> call, Throwable t) {

        }
    });
}

任何帮助都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-02-22 10:02:19

你可以这样做,

创建一个整数和整数的hashMap。调用第二个API并迭代您在响应中收到的所有项。使用此详细信息填充HashMap,如添加id作为键,默认情况下添加值1。但是在HashMap中搜索该特定id之前,如果它已经存在,则更新该id,并通过递增当前值来设置该值,如果不存在,则简单地将值设置为1。

现在,您已经准备好了一个HashMap,其中包含适当ids的计数。

现在调用第一个API,并从HashMap中获得该id的计数。否则,您可以在模型类中为count再添加一个字段,并在响应时保存计数

票数 0
EN

Stack Overflow用户

发布于 2021-02-22 12:18:50

您创建的模型类主要用于读取Response 1和Response 2。

如果您创建了一个不同的类,比如需要显示的UI,该怎么办?因此,假设响应1给出了ID和名称,响应2给出了ID和COUNT,那么我只需在单个类文件中创建一个具有ID、Name和COUNT的不同类。

然后,当我调用API 1进行响应时,我会将相关数据存储在根据UI创建的类的相关变量中。同样的过程我会在第二次响应时这样做。

一旦我有了两个响应的API列表,我将设置适配器。

我甚至可以在第一次API调用时使用setAdapter,在第二次API调用时简单地使用notifyDatasetChanged。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66313193

复制
相关文章
HttpClient来自官方的JSON扩展方法
Json的序列化和反序列化是我们日常常见的操作,通过System.Net.Http.Json我们可以用少量的代码实现上述操作.正如在github设计文档中所描述
HueiFeng
2020/04/13
1.2K0
HttpClient来自官方的JSON扩展方法
Json的序列化和反序列化是我们日常常见的操作,通过System.Net.Http.Json我们可以用少量的代码实现上述操作.正如在github设计文档中所描述
HueiFeng
2020/04/15
1K0
【API架构】使用 JSON API 的好处
在 API 工艺的世界里,没有比设计更受热议的领域了。从 REST、gRPC 到 GraphQL,有许多方法可以设计和标准化 Web API 交互。今天,我们将注意力转向另一种方法,JSON API,JSONAPI.org 上详细介绍的用于构建 API 的规范。
架构师研究会
2022/05/29
2.8K0
python匹配两个文件中相同的内容
data_small.txt中内容如下: 343 0 5258 1 3973 2 data_big.txt中内容如下: 343 2009-05-30T17:01:58Z 39.04183745 -94.5914053833 9191 343 2009-05-28T23:40:31Z 39.0523183095 -94.6074986458 8904 23 2009-05-28T23:40:31Z 39.0523183095 -94.6074986458 8904 56 2009-05-27T18:59:50Z 39.0424168 -94.59061145 9188 5258 2009-05-15T00:09:42Z 38.9920234667 -94.5920920333 10927 5258 2009-05-27T18:59:50Z 39.0424168 -94.59061145 9188 545 2009-05-15T00:09:42Z 38.9920234667 -94.5920920333 10927 3973 2009-05-14T20:47:20Z 39.0142536 -94.5928215833 12305 3973 2009-05-14T20:43:05Z 39.0146281324 -94.5907831192 9627
全栈程序员站长
2022/11/07
2.3K0
Chrome 102:新增两个 HTML 属性、两个 JS API !
inert 属性是一个全局的 HTML 属性,它可以告诉浏览器忽略元素的用户输入事件,包括焦点事件和来自辅助技术的其他事件。主要是下面两种用例:
ConardLi
2023/01/09
1.9K0
Chrome 102:新增两个 HTML 属性、两个 JS API !
让Laravel API永远返回JSON格式响应的方法示例
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。
用户2323866
2021/07/13
2.7K0
JSON API
FreeSWITCH早在1.4时代就有了JSON API,然而,却没有引起大家的重视。其实,JSON API的设计有更好的结构化和扩展性,配合HTTP和Websocket接口,必将大有作为。
杜金房
2020/12/21
9210
推荐两个C++API参考网站
C++ 标准库接口众多。在实际使用时如果不熟悉常常感到无从下手。阅读开源代码时,常常能看到使用C++新特性的优美代码,但却显得那么陌生。
首飞
2022/04/18
2.8K0
推荐两个C++API参考网站
Spring Boot 中如何统一 API 接口响应格式?
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程
江南一点雨
2021/04/01
1.3K0
来自群友的分享
我是来自某大学本科,刚打完一个关于机器人的比赛,简单来说我在里面是负责识别一排矩形物体,返回最近的一个长方体并返回其相对于深度相机的三维坐标和角度。因为要使机器人运动,所以相对于机器人的角度信息也是必要的。
点云PCL博主
2019/07/30
8110
来自群友的分享
性能工具之JMeter两个Java API Demo
https://github.com/7DGroup/JMeter-API-Demo
高楼Zee
2019/07/17
2K0
JSON Web 令牌(JWT)是如何保护 API 的
你可以已经听说过 JSON Web Token (JWT) 是目前用于保护 API 的最新技术。
用户4283147
2022/10/27
2.1K0
Shenandoah GC:一个来自JDK12的全新并发压缩垃圾回收器
是不是才听说了JDK11的ZGC,并且还没搞懂?不好意思,OpenJDK12马不停蹄的带来了Shenandoah GC。
Java_老男孩
2019/12/02
1.5K0
Automa-通过连接块来自动化你的浏览器
通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。
wangmcn
2023/08/22
7700
Automa-通过连接块来自动化你的浏览器
Ids4 认证保护 API 方案更新
可能你咋一看这个标题不知道什么意思,其实我也没想好怎么表达,因为是一个特别简单的小知识点。
老张的哲学
2022/04/11
9680
Ids4 认证保护 API 方案更新
Solr 如何自动导入来自 MySQL 的数据
在笔记 2 中,可能在执行导入时会报错,那是因为还需要将 mysql-connector-java-xxx.jar 放入 solr-xxx/server/lib 文件夹下;
村雨遥
2022/06/15
2K0
Solr 如何自动导入来自 MySQL 的数据
来自Byron同学的解答
使用了第三方的网页分析模块BeautifulSoup,可以从这里下载最新版:http://www.crummy.com/software/BeautifulSoup/ =============== #!usr/bin/python #coding:utf-8 ''' @author:Byron 新浪围脖:http://weibo.com/ziyuetk ''' import urllib2 from bs4 import BeautifulSoup print "豆瓣正在热映:" url = "http:
Crossin先生
2018/04/17
6530
点击加载更多

相似问题

来自linkedin的JSON api响应

19

在视图中显示来自api的JSON响应

10

来自SpreadSheet API的JSON响应

28

来自json API响应的列表

112

来自服务器的JSON响应来自R- REST API

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文