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

错误:org.json.jsonException:描述没有值

梅修贤
2023-03-14

我的主要活动是

    package com.blogspot.ajjavaprograms.i_bid;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class Painting extends AppCompatActivity {
    private RecyclerView mList;
    private LinearLayoutManager linearLayoutManager;
    private List<Data> data;
    private DividerItemDecoration dividerItemDecoration;
    private RecyclerView.Adapter adapter;

        @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_painting);
            mList=findViewById(R.id.recyclerview1);
            data=new ArrayList<>();
            adapter=new Data_Adapter(getApplicationContext(),data);
            linearLayoutManager=new LinearLayoutManager(this);
            linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
            dividerItemDecoration= new DividerItemDecoration(mList.getContext(),linearLayoutManager.getOrientation());
            mList.setAdapter(adapter);
            mList.setLayoutManager(linearLayoutManager);
            mList.addItemDecoration(dividerItemDecoration);
            mList.setHasFixedSize(true);
            getData();
            }
            private  void getData()
            {
                final ProgressDialog progressDialog = new ProgressDialog(this);
                progressDialog.setMessage("Loading...");
                progressDialog.show();

                final JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Constants.paint, new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        for (int i = 0; i < response.length(); i++) {
                            try {
                                JSONObject jsonObject = response.getJSONObject(i);

                                Data data1 = new Data();
                                if(jsonObject.has("itemname"))
                                data1.setItemname(jsonObject.getString("itemname"));
                                data1.setDescription(jsonObject.getString("description"));
                                data1.setPrice(jsonObject.getString("price"));

                                data.add(data1);
                            } catch (JSONException e) {
                                e.printStackTrace();
                                progressDialog.dismiss();
                            }
                        }
                        adapter.notifyDataSetChanged();
                        progressDialog.dismiss();
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e("Volley", error.toString());
                        progressDialog.dismiss();
                    }
                });
                RequestQueue requestQueue = Volley.newRequestQueue(this);
                requestQueue.add(jsonArrayRequest);
            }
            }

运行时的错误为

w/system.err:org.json.jsonException:org.json.jsonobject.get(jsonobject.java:392)上的描述没有值w/system.err:at org.json.jsonobject.getStri

  1. 列表项

ng(JSONObject.java:553)

    at com.blogspot.ajjavaprograms.i_bid.Painting$1.onResponse(Painting.java:67)
    at com.blogspot.ajjavaprograms.i_bid.Painting$1.onResponse(Painting.java:57)
    at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:90)
    at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:102)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193) W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6762)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

w/system.err:org.json.jsonException:在org.json.jsonobject.get(jsonobject.java:392)在org.json.jsonobject.getString(jsonobject.java:553)w/system.err:在com.blogspot.ajjavaprograms.i_bid.prainting$1.onresponse(painting.java:67)在com.blogspot.ajjavaprograms.i_bid.prainting$1.onresponse(painting.java:57)在get(jsonObject.java:392)w/system.err:在org.json.jsonObject.getString(jsonObject.java:553)在com.blogspot.ajjavaprograms.i_bid.prainting$1.onResponse(Painting.java:68)在com.blogspot.ajjavaprograms.i_bid.prainting$1.onResponse(Painting.java:57)在com.android.volle.toolbox.jsonRequest.DeliverResponset com.blogspot.ajjavaprograms.i_bid.prainting$1.onresponse(Painting.java:67)在com.blogspot.ajjavaprograms.i_bid.prainting$1.onresponse(Painting.java:57)在com.android.volle.toolbox.jsonrequest.deliverresponse(jsonrequest.java:90)在OM.BLOGSPOT.AJJavaPrograms.I_BID.PAINGING$1.onResponse(Painting.java:57)在com.android.volle.toolbox.JSONRequest.DeliverResponse(jsonRequest.java:90)在com.android.volle.ExecutorDeliverResponse(jsonRequest.java:90)在com.android.volle.ExecutorDeliver$ResponseDeliveryRunnable.run(executorDeliver.java:102)在

救命啊!

共有1个答案

闽朝
2023-03-14

description没有值意味着当前json对象中没有可用的键。请尝试跟随,

   if(jsonObject.has("itemname")){
        data1.setItemname(jsonObject.getString("itemname"));
     } else if(jsonObject.has("descript")){
        data1.setDescription(jsonObject.getString("descript"));
      }else if(jsonObject.has("price")){
        data1.setPrice(jsonObject.getString("price"));
      }
       data.add(data1);
 类似资料:
  • 问题内容: 尝试附加到go例程中的日志文件时,我得到了错误的文件描述符。 该文件存在,并且具有666的权限。起初我想很好,也许是因为他们每个人都试图同时打开文件。我实现了一个互斥体来尝试避免这种情况,但是遇到了同样的问题,因此我将其删除。 问题答案: 您需要添加标志: 为了说明,这是Linux文档:http : //man7.org/linux/man- pages/man2/openat.2.h

  • 我正在尝试为rest api定义一个简单的swagger定义。我在所有参数部分都收到错误。 我在招摇编辑器中得到了以下招摇定义错误,我不知道我错了什么。请告知。 昂首阔步的定义: 昂首阔步错误:

  • 今天,我在谷歌上“搜索”了这个问题的生活,没有任何决心! 我正在尝试使用服务帐户构建一个非常简单的Google Analytics数据请求控制台应用程序。我已经在Google开发者控制台中设置了所有必需的详细信息,但我遇到以下错误: 以下是我的控制台应用程序中的代码(隐藏键): 任何帮助在这里将不胜感激! 请注意,以下是我关注的一些来源: 遵循教程获取上述代码 <罢工> 有用但过时 谷歌的代码详解

  • 我已阅读此文档 所以我尝试了这个实验 它返回这个 我检查了我的值或@@DATEFIRST 它返回< code>7 那么,为什么我没有得到文件中描述的结果呢? 编辑 这是我在文档中看到的

  • 问题内容: 通过网络嵌套更新,打印“ abc已更新”,但实际值在Redis数据库中不更新。 注意:-上面的代码在localhost上有效,但更新未在heroku-redistogo上显示。 编辑:-我在本地主机上运行代码,redis连接到Redistogo。使用以下代码:- 设置快速会议:- 我还使用以下代码创建了另一个redisClient: 问题答案: 在Heroku上运行此代码时,您是否在控

  • 我正在使用最新的EclipseforJavaEE,并安装了JBoss工具,因此包含了Maven。我将一个现有的Maven项目导入到我的工作区,并尝试更新依赖项,但我只在POM中得到错误,即某些参数无效,并且无法传输任何工件。实际上有两种不同的错误,也许它们相互依赖?您可以检查:服务器可用,我还尝试重新安装Eclipse和JBoss。那么还缺少什么呢? 无法读取edu.kit.aifb.ai2.sq