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

文本返回null时,使用改型进行分析

姜松
2023-03-14

我试图解析一个简单的json(下面提到),并将值设置为TextViews。我正在使用改型和GSON转换器。但是当将值设置为textviw时,它将返回null。我已经将值解析到RecycerView,这非常容易。但在简单的回答中,我可能犯了一些小错误,但却找不到。

我们将不胜感激。

public interface ItemDescriptionInterface {
    @GET("getProductDetailByProductId?ProductId=3")
    Call<JsonObject> ITEM_DESCRIPTION_RESPONSE_CALL();
}
    Retrofit retrofit2 = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();


    ItemDescriptionInterface apiService = retrofit2.create(ItemDescriptionInterface.class);
    Call<JsonObject> jsonCall = apiService.ITEM_DESCRIPTION_RESPONSE_CALL();
    jsonCall.enqueue(new Callback<JsonObject>() {
        @Override
        public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {

            String jsonString = response.body().toString();
            Gson gson = new Gson();
            ItemDescriptionModel model = gson.fromJson(jsonString, ItemDescriptionModel.class);
            price.setText(model.getResult().getActualPrice());//Here its not getting 

        }
        @Override
        public void onFailure(Call<JsonObject> call, Throwable t) {
            String msg = (t.getMessage() == null) ? "Login failed!" : t.getMessage();
            Log.d("descriptionofproduct", msg);
        }
    });
{
  "status": "Success",
  "response_code": 200,
  "result": [
    {
      "PId": "3",
      "ProductId": "3",
      "VendorId": "admin",
      "ProductName": "Golden Green",
      "ProductAlias": "golden-green-full-rim-",
      "MarketPrice": "500",
      "ActualPrice": "450",
      "PurchasePrice": "450",
      "Style": "3",
      "DefaultImage_url": "http:\/\/lensclone.tk\/test\.png"
    }
  ]
}
public class ItemDescriptionModel {

@SerializedName("ActualPrice")
private String price;

@SerializedName("ProductDetails")
private String productDetails;

@SerializedName("DefaultImage_url")
private String imgurl;

@SerializedName("ProductName")
private String ProductName;

public ItemDescriptionModel(String price, String productDetails, String imgurl, String productName) {
    this.price = price;
    this.productDetails = productDetails;
    this.imgurl = imgurl;
    ProductName = productName;
}

public String getPrice() {
    return price;
}

public void setPrice(String price) {
    this.price = price;
}

public String getProductDetails() {
    return productDetails;
}

public void setProductDetails(String productDetails) {
    this.productDetails = productDetails;
}

public String getImgurl() {
    return imgurl;
}

public void setImgurl(String imgurl) {
    this.imgurl = imgurl;
}

public String getProductName() {
    return ProductName;
}

public void setProductName(String productName) {
    ProductName = productName;
}

如果我遗漏了什么,请告诉我。

共有1个答案

颛孙炜
2023-03-14

改变这些东西。

public interface ItemDescriptionInterface {
    @GET("getProductDetailByProductId?ProductId=3")
    Call<ItemDescriptionModel> ITEM_DESCRIPTION_RESPONSE_CALL();
}
        Call<ItemDescriptionModel> itemDescriptionModelCall= apiService.ITEM_DESCRIPTION_RESPONSE_CALL();
    itemDescriptionModelCall.enqueue(new Callback<ItemDescriptionModel>() {
        @Override
        public void onResponse(Call<ItemDescriptionModel> call, retrofit2.Response<ItemDescriptionModel> response) {
            if (response!=null && response.isSuccessful() && response.body()!=null){
                String prince=response.body().getPrice();
            }
        }

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

        }
    });
 类似资料:
  • 我正在使用Spring的“Spring test mvc”库来测试web控制器。我有一个非常简单的控制器,它返回一个JSON数组。那么在我的测试中我有: 上述测试返回: 为了快速检查我实际得到了什么,我运行了以下测试: 并在 我不确定为什么无法在JSON数组中看到。

  • 问题内容: 我得到了以下简单代码: 并且在命中时为null (引发null指针异常)。 我的问题是,即使我将其设置为在每个ip的.s上进行拆分,为什么ipArray仍为null? 问题答案: 使用,您的问题将得到解决。问题是String#split接收到一个正则表达式,点(。)符号在正则表达式中是一个特殊字符,因此您需要对其进行转义以将其解释为纯点,并且反斜杠也是转义字符在Java中,您也必须对其

  • 我是Android开发的新手,当然还有碎片。 我想访问main activity中我的片段的控件,但是'find viewbyid'返回null。如果没有片断,代码可以正常工作。

  • 首先,如果我对Rxjava的理解有错,请告诉我。 既然我们已经使用API查询使用referfit过滤了数据,那么对已经获得的数据进行操作有什么需要 为什么在RXJava中使用客户接口对象?因此,我们将其用于观察者或onNext()的位置。 Rxjava是否也有助于检索目的,或者它只是对已经获得的数据进行操作?

  • 这些天来我一直在读关于OWL本体和RDF文件的文章。我还是不能理解这一点。 假设我使用Protege创建了一个简单的本体。它有一个称为Review的类,具有两个数据属性,即comment和rating。 后面的行返回NULL。 这里面有什么问题?