Hallo kann jemand Erfahrung mit Volley-Bibliothek mir helfen, JSON in den folgenden Code zu bekommen. Bin gettin ein Fehlerprotokoll:JSON Parsing mit Volley-Bibliothek
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
}
}
tatsächlich in der Lage hilft ist eine Absicht Wert zu erhalten ‚Produkt‘ markiert, die mir die einzigartigen json Daten gibt die ich brauche. Die URL und der Ladebereich funktionieren gut, können aber json nicht erreichen. Ist es mein JSON-Format, das repariert werden muss oder was kann das Problem sein? – Brian