Прежде всего;Я так новичок в использовании для модернизации2.Я пытаюсь проанализировать файл JSON.Мой PHP файл подключения верен.(его зовут ayar.php).И я предполагаю, что в моем listeleme.php нет ошибки, потому что я могу видеть все значения.Но когда я нажимаю на мою кнопку, журнал cat выдает мне исключение.Моя цель такова;Я хочу проверить мой список для входа.Если есть такой пользователь.Активность переходит на другую деятельность, иначе я получаю тост.Исключение:
com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 2 column 40 path $[1]
listeleme.php:
<?php
include ('ayar.php');
class kullanici
{
public $id = "";
public $isim = "";
public $sifre = "";
}
$kl = new kullanici();
$bak = mysqli_query($connect, "select * from kullanici" );
$değer = mysqli_num_rows($bak);
$sayac = 0 ;
echo ("[");
while ($göster = mysqli_fetch_assoc($bak))
{
$sayac = $sayac+1 ;
$kl ->id=$göster["id"];
$kl ->isim=$göster["isim"];
$kl ->sifre=$göster["sifre"];
echo(json_encode($kl));
if ($sayac != $değer)
{
echo (",");
}
echo ("]");
}
?>
Класс моих моделей:
public class kullanici {
private String sifre;
private String id;
private String isim ;
public String getSoyad() {
return sifre;
}
public void setSoyad(String sifre) {
this.sifre = sifre;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getIsim() {
return isim;
}
public void setIsim(String isim) {
this.isim = isim;
}
@Override
public String toString() {
return "kullanici{" +
"sifre='" + sifre + '\'' +
", id='" + id + '\'' +
", isim='" + isim + '\'' +
'}';
}
}
Интерфейс RestApi:
public interface RestApi {
//2 Cİ yapılan iş.
@FormUrlEncoded
@POST("/ekle.php")// url nin sonundaki isim.
// Post edilecek değişkenlerin adı oldugu gibi yazılır.
//phpbyadmin" deki aynı isim olmasına gerek yok.
Call<Result> addUser(@Field("ad") String ad , @Field("eposta")String eposta , @Field("sifre")String sifre ,@Field("cinsiyet")
String cinsiyet , @Field("telefon_number") String telefon_number , @Field("dogum_tarihi") String dogum_tarihi
, @Field("sehir") String sehir , @Field("ilce") String ilce);
@GET("/listeleme.php")
Call<List<kullanici>> listele();
}
ManagerAllкласс:
public class ManagerAll extends BaseManager {
private static ManagerAll ourinstance = new ManagerAll();
public static synchronized ManagerAll getinstance()
{
return ourinstance ;
}
public Call<Result> ekle (String ad , String eposta ,String sifre , String cinsiyet ,String telefon_number, String dogum_tarihi
,String sehir ,String ilce){
Call<Result> x = getRestApi().addUser(ad,eposta ,sifre,cinsiyet,telefon_number,dogum_tarihi,sehir,ilce);
return x ;
}
public Call<List<kullanici>> checkusers(){
Call<List<kullanici>> y = getRestApi().listele();
return y;
}
}
Наконец, моя активность:
giris_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String kullanıcı = kullanıcı_edittext.getText().toString();
String sifre = sifre_edittext.getText().toString();
retrofit2.Call<List<kullanici>> y = ManagerAll.getinstance().checkusers();
y.enqueue(new Callback<List<kullanici>>() {
@Override
public void onResponse(Call<List<kullanici>> call, Response<List<kullanici>> response) {
Log.i(TAG, "Sonuc: " + response.body().toString());
Toast.makeText(giris_ekrani.this, "It works", Toast.LENGTH_SHORT).show();
Intent bottom_bar_intent = new Intent(giris_ekrani.this ,bottom_bar.class);
startActivity(bottom_bar_intent);
}
@Override
public void onFailure(Call<List<kullanici>> call, Throwable t) {
Toast.makeText(giris_ekrani.this, "doesnt", Toast.LENGTH_SHORT).show();
Log.i(TAG, "Sonuc: " + t.toString());
}
});
Это мои значения JSON:
[{"id":"9","isim":"as","sifre":"123"},{"id":"10","isim":"selam","sifre":"1234"},{"id":"11","isim":"berkay214214","sifre":"315"},{"id":"12","isim":"werew","sifre":"0"},{"id":"13","isim":"berk","sifre":"1234"}]