当前位置: 首页 > 知识库问答 >
问题:

我应该如何使用改造在阵列下获取图像

秦俊友
2023-03-14

我有数组下的图像...这是我的json:

{
    "status": 200,
    "data": {
        "id": 1,
        "product_category_id": 1,
        "name": "Centre Coffee Table",
        "producer": "Luna",
        "description": "Mild Steel Base In Poder Coated White Finish.8 mm Tempered Glass Table Top.Bottom Shelf In Paimted Brown Glass.",
        "cost": 5000,
        "rating": 3,
        "view_count": 21243,
        "created": "2015-09-07T09:24:05+0000",
        "modified": "2020-07-27T10:52:42+0000",
        "product_images": [
            {
                "id": 1,
                "product_id": 1,
                "image": "http://staging.php-dev.in:8844/trainingapp/uploads/prod_img/thumb/medium/9dc6234da018916e545011fa1.jpeg",
                "created": "2015-09-07T09:40:00+0000",
                "modified": "2015-09-07T09:40:00+0000"
            },
            {
                "id": 6,
                "product_id": 1,
                "image": "http://staging.php-dev.in:8844/trainingapp/uploads/prod_img/thumb/medium/1bfdac02ced672dd1e8e8976c.jpeg",
                "created": "2015-09-07T09:44:11+0000",
                "modified": "2015-09-07T09:44:11+0000"
            }
        ]
    }
}

我会告诉你product_images下的图像是不固定的...它可能是不同的id...可以包含3或2或1或4

这是我的第二个json响应,其中包含3张图片的id 3在数组下被检索

{
    "status": 200,
    "data": {
        "id": 5,
        "product_category_id": 2,
        "name": "HP Fabric Office Chair",
        "producer": "HP",
        "description": "Serene Staff Chair\r\nFive Star Nylon Base with Nylon Castor\r\nFree Delivery",
        "cost": 2222,
        "rating": 3,
        "view_count": 2335,
        "created": "2015-09-07T09:48:51+0000",
        "modified": "2020-07-27T11:50:51+0000",
        "product_images": [
            {
                "id": 10,
                "product_id": 5,
                "image": "http://staging.php-dev.in:8844/trainingapp/uploads/prod_img/thumb/medium/fddd92b395be88ce117936b9f.jpeg",
                "created": "2015-09-07T09:49:33+0000",
                "modified": "2015-09-07T09:49:33+0000"
            },
            {
                "id": 11,
                "product_id": 5,
                "image": "http://staging.php-dev.in:8844/trainingapp/uploads/prod_img/thumb/medium/78b1d4e168280fe5f9cfdff60.jpeg",
                "created": "2015-09-07T09:49:51+0000",
                "modified": "2015-09-07T09:49:51+0000"
            },
            {
                "id": 12,
                "product_id": 5,
                "image": "http://staging.php-dev.in:8844/trainingapp/uploads/prod_img/thumb/medium/b6480396b91bb9e99e40e4ba7.jpeg",
                "created": "2015-09-07T09:50:10+0000",
                "modified": "2015-09-07T09:50:10+0000"
            }
        ]
    }
}

这是我的改造活动:

RetrofitClient.instancetable.fetchUserdetail(id)
        .enqueue(object : Callback<Product_base_response> {
            override fun onFailure(call: Call<Product_base_response>, t: Throwable) {
                Log.d("res", "" + t)

            }

            override fun onResponse(
                call: Call<Product_base_response>,
                response: Response<Product_base_response>
            ) {
                var res = response

             val ret: Product_Data_response? =res.body()?.data
                val retro: List<Product_images_response> = res.body()?.data?.product_images!!

                Log.e("checkdata",ret?.name.toString())
                val ygd=ret?.name.toString()
                text.setText(ygd)
                text2.setText(ret?.producer.toString())
           //need help in here -->>>> 
               Glide.with(getApplicationContext()).load(res?.body()!!.data.product_images.get(0).image).into(imagemain);
                for ( i in res?.body()!!.data.product_images.indices.toString()){//crashes if contain image under get(1)
                     Glide.with(getApplicationContext()).load(res?.body()!!.data.product_images.get(1).image).into(imagemain1);


                }
               Glide.with(getApplicationContext()).load(res?.body()!!.data.product_images.get(2).image).into(imagemain2);
               Glide.with(getApplicationContext()).load(res?.body()!!.data.product_images.get(3).image).into(imagemain3);

            }
        })
}

从上面的改造响应代码,当它没有检测到图像数组中的get(1)时,它会崩溃

注意:我必须在4个ImageView中加载这些图像,并且注意图像不是固定的,正如json 1和json 2所示。

提前感谢帮助。

共有1个答案

元彦君
2023-03-14

试试这种方法...

首先从你的回答中创建模型类,复制你的回答并在这里添加你的回答http://pojo.sodhanalibrary.com/,这里它将从你的回答中创建所有的pojo类。

现在…更改api调用方法

Call<Product_base_response>

Call<JsonObject>

现在只需在 onResponse 方法中打印响应,如

Log.d("===","onResponse :: "+response.body());

如果你在这里得到了回应,

   Gson gson = new Gson();
Your_Main_Model mainModel = gson.fromJson(jsonObject.toString(), Your_Main_Model.class);

现在,要获取图像,您需要通过主模型,例如

Main_model.data_object_model.product_images_model_list.get(0).getImage();

希望这工作,如果你没有得到它或这不工作让我知道

 类似资料:
  • 相关问题 < code>Json的响应是< code >新行分隔符Json: 我正在使用来提出请求: 我可以在我的中看到响应,但收到以下错误: 中格式错误的JSON < li >响应在< code>NdJson中,它无法正确解析它 如何正确解析它?

  • 问题内容: 我不太清楚当我这样说时会做什么: 我可以稍微了解使用它的原因,因为它不浏览整个数据库表以更新字段,而是仅更新新添加的记录。如我错了请纠正我。 所以我想做的是使用这样创建索引: 一旦执行此操作,文档就根本不会上传到索引。我要去哪里错了? 任何帮助,不胜感激。 问题答案: 如果您的表中有一个时间戳列(例如),则最好使用它代替ID号。这样,当记录更新时,您也可以修改该时间戳,输入插件将提取记

  • 问题内容: 在Objective- C中,我调用该方法来记录异常。如何在Swift中调用它? 问题答案: 使用Swift 2,您可以将Swift函数和闭包作为C函数指针传递 原始答案 从Xcode 6 beta 6开始,您不能这样做。 Swift确实支持传递函数指针,但是它们几乎就像不透明指针一样被对待。您既不能定义指向Swift函数的C函数指针,也不能在Swift中调用C函数指针。 这意味着您从

  • 问题内容: 这个问题在很多地方都被问到,变化不尽。例如Java-getClassLoader()。getResource()不仅使我烦恼不已。)我仍然无法使其正常工作。 这是一个代码片段: 此作品-请注意,我硬编码的路径,包含剪辑文件,该文件的目录 是 有,而且 是 在同一目录作为我的.class文件。las,注释掉的代码仅返回url的空值。 其他大多数帖子似乎都涉及getResourceAsSt

  • 我是android开发的新手,我正在使用JSON解析方法解析我的数据,我用List Fragment扩展了我的类,我希望我的数据在列表视图中,但问题是除了图像之外,我得到的所有数据都很完美,我不知道如何解算,我的回答如下

  • 我想问你,我应该如何设置和获取属性值?我应该这样做吗,例如直接从另一个类并将属性设置为公共属性,或者更好的做法是将属性设置为私有并更改它或通过使用此类中实现的公共函数来获取它? 第一种情况: 第二种情况: 这段代码显然有点简化...