آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در دریافت json

Bahamin Dadras  8 سال پیش  8 سال پیش
0 0

سلام

من وقتی میخوام جیسونم رو بگیرم کنارش یه سری کاراکتر های اضافی داره که باعث میشه نتونم ازش استفاده کنم.

  • که چنین چیزی هست===>>   "}
  • error ای هم که در logcat میده ===>> Value of type java.lang.String cannot be converted to JSONObject
  • برای گرفتن اطلاعات هم از کتابخانه volley استفاده میکنم.
  • در دیتابیس هم تمامیه قسمت ها از utf8 استفاده کردم.

 

 

 

public class Activity_Revayat extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_revayat);


final RecyclerView rc = (RecyclerView) findViewById(R.id.rc);
final RequestQueue myQueue = Volley.newRequestQueue(Activity_Revayat.this);
String url = "http://mrtshirt.ir/masaf/selectAll.php";

final StringRequest myString = new StringRequest(StringRequest.Method.POST, url, new Response.Listener<String>() {

@Override
public void onResponse(String s) {
Log.d("bahamin", s);
if (s.equals("ther is no data")) {
Toast.makeText(Activity_Revayat.this, "خطا در گرفتن اطلاعات", Toast.LENGTH_SHORT).show();
} else {

try {
JSONArray myJsonArray = new JSONArray(s);
rc.setAdapter(new MyAdapter(Activity_Revayat.this, myJsonArray));
rc.setLayoutManager(new LinearLayoutManager(Activity_Revayat.this, LinearLayoutManager.VERTICAL, false));
} catch (JSONException e) {
e.printStackTrace();
}

}

}
}, null) {

@Override
public byte[] getBody() throws AuthFailureError {
try {
return ("").getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}
};

myQueue.add(myString);
myQueue.start();


}
}
 
 
 

دوستی که گفت به جیسون آبجکت تبدیل نکردم:

 


public class MyAdapter extends RecyclerView.Adapter<MyAdapter.VH> {

private Context c;
private JSONArray myArray;


public MyAdapter(Context c, JSONArray j) {
this.c = c;
this.myArray = j;

}

@Override
public VH onCreateViewHolder(ViewGroup parent, int viewType) {
return new VH(LayoutInflater.from(c).inflate((R.layout.adapter_layout), parent, false));
}

@Override
public void onBindViewHolder(VH holder, final int position) {

try {
JSONObject myObject = myArray.getJSONObject(position);

holder.myId.setText(myObject.getString("id"));
holder.Name.setText(myObject.getString("name"));
holder.User_post.setText(myObject.getString("desc"));
holder.Age.setText(myObject.getString("text"));
holder.LastName.setText(myObject.getString("pic"));
} catch (JSONException e) {
e.printStackTrace();
}


}

@Override
public int getItemCount() {


return myArray.length();
}

class VH extends RecyclerView.ViewHolder {
TextView myId;
TextView Name;
TextView User_post;
TextView LastName;
TextView Age;

public VH(View itemView) {
super(itemView);
myId = (TextView) itemView.findViewById(R.id.idText);
Name = (TextView) itemView.findViewById(R.id.NameText);
User_post = (TextView) itemView.findViewById(R.id.PostText);
LastName = (TextView) itemView.findViewById(R.id.LastNameText);
Age = (TextView) itemView.findViewById(R.id.AgeText);
}
}
}
+1 0
ظاهرا جیسونی که شما داری به فرمت استاندارد نیست.. اون جیسون رو بنداز تو این سایت لینک ببین خطا داره یا نه (8 سال پیش)
+1 0
شما دارین مستقیم Json Arrey رو میدین به ریساکل ویو. من دیدم دو تا رکورد هم دارین. اول باید تبدیلش کنین به جیسون ابجکت و بعد بفرستینش به ریسایکل در ضمن JSON مشکلی نداشت (8 سال پیش)
0 0
هر دو کلاسم رو قرار دادم در قسمت سوال.جیسون هم اساندارده ولی احساس میکنم در یک قسمت از فرمت utf8 خارج میشه و کاراکنر های "} بهش اضافه میشه. (8 سال پیش)
+1 0
چرا احساس میکنید؟ خب اون قسمت که رشته دریافتی رو Log کردید چه جوابی بهتون داده؟ دقیقا ارور از چه خطی گرفته شده؟ (8 سال پیش)
+1 0
مشکل از PHP هست ( اکر منبع جیسون شما PHP هست ) ، چند کوئری مختلف روی سرور رو تست کنید ببینید دلیل اضافه شدن این کاراکتر چی هست ، مشکل در کد نویسی هست یا وجود یک مقدار در دیتابیس داره باعث بوجود اومدن این خطا میشه یا هر دلیلی دیگه ! (8 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Bahamin Dadras  8 سال پیش
0 0

جیسونی که در LOG دریافت میکنم اینجوری آقای شرافت:

   این نمیدونم چیه

 

[{\"id\":\"1\",\"name\":\"testttt\",\"desc\":\"desccc\",\"text\":\"texttt\",\"pic\":\"picccc\"},{\"id\":\"2\",\"name\":\"nameee\",\"desc
\":\"desccc\",\"text\":\"textttt\",\"pic\":\"piccc\"}]






پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .