بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در دریافت json
سلام
من وقتی میخوام جیسونم رو بگیرم کنارش یه سری کاراکتر های اضافی داره که باعث میشه نتونم ازش استفاده کنم.
- که چنین چیزی هست===>> "}
- 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\"}]
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .