[英]String cannot be converted to JSONObject from server in android
所以這是我的代碼,我試圖從服務器獲取數據並在listview中顯示,因此在控制台窗口中出現“無法將字符串轉換為JSONObject”錯誤。 因此,請任何人都可以給我答案。
Attenence.java
package com.example.pranav.attendence;
public class attendance
{
public String name;
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
AttendanceAdapter.java
package com.example.pranav.attendence;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
public class AttendanceAdapter extends BaseAdapter
{
public final MainActivity mainActivity;
public final ArrayList<attendance> studentlist;
attendance attendance;
public AttendanceAdapter(MainActivity mainActivity, ArrayList<attendance> studentlist)
{
this.mainActivity = mainActivity;
this.studentlist = studentlist;
}
@Override
public int getCount()
{
return studentlist.size();
}
@Override
public Object getItem(int i)
{
return studentlist.get(i);
}
@Override
public long getItemId(int i)
{
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
View row=view;
AttendanceAdapter.SubjectHolder holder=null;
if(row==null)
{
LayoutInflater inflater=LayoutInflater.from(mainActivity);
row=inflater.inflate(R.layout.list_item,viewGroup,false);
holder = new AttendanceAdapter.SubjectHolder();
holder.nametv= (TextView) row.findViewById(R.id.name);
row.setTag(holder);
}
else
{
holder= (AttendanceAdapter.SubjectHolder) row.getTag();
}
attendance stud=studentlist.get(i);
holder.nametv.setText(attendance.getName());
return row;
}
class SubjectHolder
{
TextView nametv;
}
}
MainActivity.java
package com.example.pranav.attendence;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
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.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity
{
ListView playerListView;
ArrayList<attendance> playerList = new ArrayList<attendance>();
attendance attendance;
AttendanceAdapter playerAdapter;
ProgressDialog dialog;
String TAG=null;
String name;
String URL="https://pranavpatel428.000webhostapp.com/image/myphp/demo.php";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
playerListView=(ListView)findViewById(R.id.listview);
dialog = new ProgressDialog(this);
getSubject();
playerListView.setAdapter(playerAdapter);
playerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
attendance player=playerList.get(i);
}
});
}
private void getSubject()
{
dialog.setMessage("Fetching Subject... Please Wait");
dialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
dialog.dismiss();
try {
JSONObject obj = new JSONObject(response);
JSONArray jsonArray = obj.getJSONArray("data");
for(int i=0;i<jsonArray.length();i++){
//Declaring a json object corresponding to every pdf object in our json Array
JSONObject jsonObject = jsonArray.getJSONObject(i);
//Declaring a Pdf object to add it to the ArrayList pdfList
name = jsonObject.getString("name");
}
attendance = new attendance();
attendance.setName(name);
playerList.add(attendance);
playerAdapter=new AttendanceAdapter(MainActivity.this,playerList);
playerListView.setAdapter(playerAdapter);
playerAdapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "" + e, Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue request = Volley.newRequestQueue(this);
request.add(stringRequest);
}
}
Output
您的回應不是有效的json。
成功{“ data”:[{“ name”:“ Pranav”},{“ name”:“ Parth”},{“ name”:“ Kaushil”},{“ name”:“ Falak”},{“ name “:” Mitesh“},{” name“:” Krishna“},{” name“:” Nilam“},{” name“:” Jui“},{” name“:” Runee“},{” name “:” Kishan“}],”成功“:1,”消息“:”找到條目“}
您應該從服務器端的響應中刪除“成功”字符串,這將使其成為有效的json。
要檢查JSON字符串的有效性,您可以嘗試https://jsonlint.com/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.