- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,任何有 volley 库经验的人都可以帮我在下面的代码中获取 JSON 吗?我收到错误日志:
D/Volley: [13] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] http://digitaresolutions.com/apps/drugindex/getbrand.php?id=bactiflox 0xdf379d06 NORMAL 1> [lifetime=19209], [size=160], [rc=200], [retryCount=0]; I/Search_view: org.json.JSONException: Value of type java.lang.String cannot be converted to JSONObject
public class Search_view extends AppCompatActivity {
String brandURL = "http://digitaresolutions.com/apps/drugindex/getbrand.php?id=";
private String TAG = this.getClass().getSimpleName();
private ListView lstView;
private RequestQueue mRequestQueue;
private ArrayList<BrandModel> arrBrand ;
private LayoutInflater lf;
private VolleyAdapter va;
private ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.brand_main);
lf = LayoutInflater.from(this);
arrBrand = new ArrayList<BrandModel>();
va = new VolleyAdapter();
lstView = (ListView) findViewById(R.id.listView);
lstView.setAdapter(va);
mRequestQueue = Volley.newRequestQueue(this);
// getting attached intent data
Intent i = getIntent();
String product = i.getStringExtra("product");
// displaying selected product name
String url = brandURL + product;
// JSON Data
pd = ProgressDialog.show(this,"Loading...","Please Wait...");
try{
Thread.sleep(2000);
}catch(Exception e){
}
JsonObjectRequest jr = new JsonObjectRequest(Request.Method.GET,url,null,new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i(TAG,response.toString());
parseJSON(response);
va.notifyDataSetChanged();
pd.dismiss();
; }
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i(TAG,error.getMessage());
}
});
mRequestQueue.add(jr);
}
private void parseJSON(JSONObject json){
try{
JSONObject value = json.getJSONObject(null);
JSONArray items = value.getJSONArray("result");
for(int x=0;x<items.length();x++){
JSONObject item = items.getJSONObject(x);
BrandModel nm = new BrandModel();
nm.setDrugbrand(item.optString("drugbrand"));
nm.setManu(item.optString("manu"));
nm.setDetails(item.optString("details"));
arrBrand.add(nm);
}
}
catch(Exception e){
e.printStackTrace();
}
}
public class BrandModel
{
private String details;
private String manu;
private String drugbrand;
public String getDetails ()
{
return details;
}
public void setDetails (String details)
{
this.details = details;
}
public String getManu ()
{
return manu;
}
public void setManu (String manu)
{
this.manu = manu;
}
public String getDrugbrand ()
{
return drugbrand;
}
public void setDrugbrand (String drugbrand)
{
this.drugbrand = drugbrand;
}
@Override
public String toString()
{
return "ClassPojo [details = "+details+", manu = "+manu+", drugbrand = "+drugbrand+"]";
}
}
class VolleyAdapter extends BaseAdapter{
@Override
public int getCount() {
return arrBrand.size();
}
@Override
public Object getItem(int x) {
return arrBrand.get(x);
}
@Override
public long getItemId(int x) {
return 0;
}
@Override
public View getView(int x, View view, ViewGroup viewGroup) {
ViewHolder vh ;
if(view == null){
vh = new ViewHolder();
view = lf.inflate(R.layout.brand_row_listview,null);
vh.tvTitle = (TextView) view.findViewById(R.id.txtTitle);
vh.tvManu = (TextView) view.findViewById(R.id.txtManufacturer);
vh.tvDetails = (TextView) view.findViewById(R.id.txtDetails);
view.setTag(vh);
}
else{
vh = (ViewHolder) view.getTag();
}
BrandModel nm = arrBrand.get(x);
vh.tvTitle.setText(nm.getDrugbrand());
vh.tvManu.setText(nm.getManu());
vh.tvDetails.setText(nm.getDetails());
return view;
}
class ViewHolder{
TextView tvTitle;
TextView tvManu;
TextView tvDetails;
}
// End JSON Loading code block
}
}
最佳答案
看看这是否有帮助
public class SomeActivity extends AppCompatActivity {
ProgressDialog pd;
TextView txtView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_volley);
txtView = (TextView) findViewById(R.id.txt_volley);
String id = "bactiflox";
String url = new Uri.Builder()
.encodedPath("http://digitaresolutions.com")
.appendEncodedPath("apps/drugindex/getbrand.php")
.appendQueryParameter("id", id)
.build().toString();
JsonObjectRequest req = new JsonObjectRequest(url, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
pd.dismiss();
txtView.setText(response.toString());
try {
JSONArray mydata = response.getJSONArray("mydata");
for (int i = 0; i < mydata.length(); i++) {
JSONObject obj = mydata.getJSONObject(i);
Log.i("JSON", obj.getString("manu"));
Log.i("JSON", obj.getString("details"));
Log.i("JSON", obj.getString("drugbrand"));
}
} catch (JSONException e) {
txtView.setText(e.toString());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pd.dismiss();
txtView.setText(String.valueOf(error));
}
});
addToRequestQueue(req); // TODO: Implement
pd = ProgressDialog.show(this,"Loading...","Please Wait...");
}
}
关于java - 使用volley库进行JSON解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36151484/
我目前正在测试 Volley 库。但是当请求失败 (404) 时,它不会再次执行,或者至少没有错误。但是缺少数据。如果请求失败,这是重试请求的正确方法吗? 提前致谢 req.setRetryPolic
我是新来从事Volley和缓存工作的:P。尽管我已经看过许多与Volley进行图像缓存有关的文章和帖子,但是我仍然不清楚采用Volley进行图像缓存的最佳/首选方式。像磁盘缓存还是内存? Volley
我想使用 Volley 从我的 Android 应用发送请求。 我已经把它包含在 build.gradle 中了 dependencies { ... compile 'com.andr
我的目标是从另一个类调用 Volley,这是一种非常简洁、模块化的方式,即: VolleyListener newListener = new VolleyListener()
我的代码是: class MyService extends Service{ public void onCreate(){ new ImageLoader(mReque
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我需要帮助来解决 Volley 库错误。我已使用 nodejs api 向服务器发送一些凭据以进行用户注册。在成功的情况下,当我的所有凭据对于创建新用户帐户都是唯一的时,它会向我显示所有响应等的所有内
我正在尝试完善我的应用程序中的错误处理,但我找不到 Volley 触发某些错误的集中位置以及原因。例如,我想知道如果我的请求的状态代码是 500 或更大,它肯定会触发 ServerError,但我似乎
当我在调试器中运行该方法时,数据按预期显示,但是每当我尝试使用它执行任何操作时,parentObject 的值都会返回为 null。 我只是想从服务器获取响应并将其存储为 JSONObject 以便在
我正在使用 Android Volley 缓存请求,这在我使用 GET 时工作正常,但由于某些原因我改用 POST。现在我想用不同的 POST 数据缓存相同的 URL。 请求 1 -> URL1,PO
我的情况是使用 Android-volley至 POST我的 json 对象,我可以成功发布所有内容,我的数据在服务器中可见,但服务器响应为 String不像 json ,这就是出现错误的原因。 co
我正在使用 volley 从 REST api 解析电影详细信息,并将解析的数据保存在名为 detailsMovies 的对象数组列表中。但是我无法在 onResponse 方法之外访问 ArrayL
我想知道如何解决这个问题。已完成代码的研究和替换,但问题仍然存在。 这是我使用 volley 的代码。 private void Regist(){ loading.setVisibility
如何创建一个单独的类,在其中定义所有关于 volley在另一个 Activity 中,我们直接传递 URL、CONTEXT 和 Get Response... 最佳答案 首先在Activity中创建回
我正在使用 volley 库并以 XML 格式获取响应。我想知道我们如何使用/volley 库解析响应。谢谢。 最佳答案 StringRequest req = new StringReque
当我在android studio中搜索 Volley 时,同时获取com.mcxiaoke.volley:library:1.0.19和com.mcxiaoke.volley:library-aar
我是 volley 和 android 的新手,我已经用 gradle 安装了 volley 并做了与官方教程相同的操作。但是没有响应,这意味着 Errorlistener 和 Responselis
当我在 Volley 中发出请求时,我收到 com.android.volley.ServerError 和响应代码 400。 我正在做这样的事情(通用示例代码): final String para
我引用了http://www.androidhive.info/2016/02/android-push-notifications-using-gcm-php-mysql-realtime-chat
当我将以下行添加到依赖项的 build.gradle 行时,Android Studio 显示此错误消息:compile 'com.android.volley:volley:1.0.0' apply
我是一名优秀的程序员,十分优秀!