org.json.JSONException:java.lang.String类型的订单号处的值OR-12345无法转换为int

org.json.JSONException:java.lang.String类型的订单号处的值OR-12345无法转换为int,java,android,Java,Android,我试图使用来自虚拟api的json数据填充recycler视图,但它不起作用。我尝试了stack overflow中给出的几乎几种解决方案 下面是我的代码: public class loadOrdersList extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { ordersList = new ArrayList<>();

我试图使用来自虚拟api的json数据填充recycler视图,但它不起作用。我尝试了stack overflow中给出的几乎几种解决方案

下面是我的代码:

public class loadOrdersList extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        ordersList = new ArrayList<>();
        rvor = findViewById(R.id.recycler_view_orders);
        rvor.setHasFixedSize(true);
        rvor.setLayoutManager(new LinearLayoutManager(OrdersActivity.this));
    }

    @Override
    protected void onPostExecute(Void aVoid) {

        if (new CheckNetworkUtil(OrdersActivity.this).isNetworkAvailable()) {
        Log.d("TEST", "------------------ordersList: " + ordersList.size());
        OrdersAdapter adapter = new OrdersAdapter(getApplicationContext(), ordersList);
        rvor.setAdapter(adapter);
            srl.setRefreshing(false);
        } else
            Toast.makeText(OrdersActivity.this, "No Internet Connection!", Toast.LENGTH_SHORT).show();
        }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }

    @Override
    protected Void doInBackground(Void... voids) {

            try {
                OkHttpClient client = new OkHttpClient();

                final Request request = new Request.Builder()
                        .url("https://api.myjson.com/bins/la2gh")
                        .build();

                Response responses = client.newCall(request).execute();

                JSONArray orders = new JSONArray(responses.body().string());

                ordersList = new ArrayList<>();

                for (int i = 0; i < orders.length(); i++) {
                    JSONObject name = orders.getJSONObject(i);
                    String customerName = name.getString("customer_name");
                    String agentAssigned = name.getString("agent_assigned");
                    String orderId = name.getString("order_id");
                    Integer totalQuantity = name.getInt("total_quantity");
                    String orderDate = name.getString("order_date");
                    Integer orderNo = name.getInt("order_no");
                    String schoolYear = name.getString("school_year");
                    String company = name.getString("company");
                    String deliveryDate = name.getString("delivery_date");
                    String orderStatus = name.getString("order_status");
                    Integer grossRevenue = name.getInt("gross_revenue");
                    Integer netRevenue = name.getInt("net_revenue");
                    Integer totalOrdered = name.getInt("total");
                    Integer grandTotalOrdered = name.getInt("grand_total");
                    OrderModel orderModel = new OrderModel(customerName
                            ,agentAssigned
                            ,orderId
                            ,totalQuantity
                            ,orderDate
                            ,orderNo
                            ,schoolYear
                            ,company
                            ,deliveryDate
                            ,orderStatus
                            ,grossRevenue
                            ,netRevenue
                            ,totalOrdered
                            ,grandTotalOrdered);

                    ordersList.add(orderModel);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
    }
}
public类loadOrdersList扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
ordersList=newarraylist();
rvor=findViewById(R.id.回收商\查看\订单);
rvor.setHasFixedSize(真);
rvor.setLayoutManager(新的LinearLayoutManager(OrdersActivity.this));
}
@凌驾
受保护的void onPostExecute(void避免){
if(新建CheckNetworkUtil(OrdersActivity.this).isNetworkAvailable()){
Log.d(“TEST”,“------------ordersList:“+ordersList.size());
OrdersAdapter=新的OrdersAdapter(getApplicationContext(),ordersList);
rvor.setAdapter(适配器);
srl.设置刷新(假);
}否则
Toast.makeText(OrdersActivity.this,“无互联网连接!”,Toast.LENGTH_SHORT.show();
}
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
}
@凌驾
受保护的空位背景(空位…空位){
试一试{
OkHttpClient=新的OkHttpClient();
最终请求=新请求.Builder()
.url(“https://api.myjson.com/bins/la2gh")
.build();
Response responses=client.newCall(request.execute();
JSONArray orders=newjsonarray(responses.body().string());
ordersList=newarraylist();
对于(int i=0;i

我怀疑字符串在执行过程中不支持整数。

您希望
order\u no
为整数,因此编写了此代码
Integer orderNo=name.getInt(“订单号”)
但您在回收器视图中收到的是一个字母数字值,用于
orderNo

因此,您必须将
OrderModel
orderNo
属性的类型从
Integer
更改为
String
或仅将值限制为
Integer
类型

json对象中的字段
order\u no
具有值
或-12345
。因此,这是数据问题,或者如果该值有效,则需要将
OrderModel
类中的
orderNo
属性的类型更改为
String