我試圖從服務器上的數據庫中讀取一些數據,但我有此錯誤:Android的凌空錯誤字符串不能轉換爲JSONObject的
09-19 21:14:55.294 8376-8376/com.example.user.firebasenot I/System.out: Try2com.android.volley.ParseError: org.json.JSONException: Value connected of type java.lang.String cannot be converted to JSONObject
我想嘗試,如果服務器上的代碼工作使用先進的REST客戶端和郵差也和它的工作非常好,這是結果:
{
"students": [
{
"id": "1",
"firstname": "saleh",
"lastname": "refai",
"age": "333"
},
{
"id": "2",
"firstname": "ali",
"lastname": "hariri",
"age": "22"
}
]
}
,但是當我試圖在Android應用程式我以前的錯誤響應 這裏是我的代碼:
public class Insertion extends AppCompatActivity {
String token1;
EditText firstname,lastname,age;
Button register,show;
TextView result;
RequestQueue requestQueue;
String inserturl="http://saleh923.freeoda.com/insertstudent.php";
String showurl="http://saleh923.freeoda.com/showstudent.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nsertion);
Bundle b=getIntent().getExtras();
// token1=b.getString("token");
firstname=(EditText)findViewById(R.id.editText);
lastname=(EditText)findViewById(R.id.editText2);
age=(EditText)findViewById(R.id.editText3);
register=(Button) findViewById(R.id.button2);
show=(Button) findViewById(R.id.button3);
result=(TextView) findViewById(R.id.textView2);
requestQueue= Volley.newRequestQueue(getApplicationContext());
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.POST, showurl, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
System.out.println("Try1"+response);
JSONArray students=response.getJSONArray("students");
for(int i=0;i<students.length();i++)
{
JSONObject student=students.getJSONObject(i);
String firstname=student.getString("firstname");
String lastname=student.getString("lastname");
String age=student.getString("age");
result.append(firstname+" "+lastname+" "+ age+ " \n");
}
result.append("====\n");
} catch (JSONException e) {
System.out.println("errrrror");
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("Try2"+error.toString());
}
}
);
requestQueue.add(jsonObjectRequest);
}
});
}
}
這裏是我的PHP代碼:
<?php
if($_SERVER["REQUEST_METHOD"]=="POST" )
{
include "init.php";
showStudent();
}
function showStudent()
{
global $con;
$query="SELECT * FROM student; ";
$result=mysqli_query($con,$query);
$num_of_rows=mysqli_num_rows($result);
$temp_arr=array();
if($num_of_rows>0)
{
while($row=mysqli_fetch_assoc($result))
{
$temp_arr[]=$row;
}
}
header('Content-Type:application/json');
echo json_encode(array("students"=>$temp_arr));
mysqli_close($con);
}
?>
'showurl'不返回數據 –
我試了一下郵差和高級REST客戶端和返回的學生排列如圖@fahad –