यह क्या त्रुटि है? मैं इसे कैसे ठीक करूं? मेरा ऐप चल रहा है लेकिन डेटा लोड नहीं किया जा सकता। और यह मेरी त्रुटि है: पंक्ति 1 पथ $ $ पर विकृत JSON को स्वीकार करने के लिए JsonReader.setLenient (सत्य) का उपयोग करें
यह मेरा टुकड़ा है:
public class news extends Fragment {
private RecyclerView recyclerView;
private ArrayList<Deatails> data;
private DataAdapter adapter;
private View myFragmentView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myFragmentView = inflater.inflate(R.layout.news, container, false);
initViews();
return myFragmentView;
}
private void initViews() {
recyclerView = (RecyclerView) myFragmentView.findViewById(R.id.card_recycler_view);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(layoutManager);
data = new ArrayList<Deatails>();
adapter = new DataAdapter(getActivity(), data);
recyclerView.setAdapter(adapter);
new Thread()
{
public void run()
{
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
loadJSON();
}
});
}
}
.start();
}
private void loadJSON() {
if (isNetworkConnected()){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.retryOnConnectionFailure(true)
.connectTimeout(15, TimeUnit.SECONDS)
.build();
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.memaraneha.ir/")
.client(client)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
RequestInterface request = retrofit.create(RequestInterface.class);
Call<JSONResponse> call = request.getJSON();
final ProgressDialog progressDialog = new ProgressDialog(getActivity());
progressDialog.show();
call.enqueue(new Callback<JSONResponse>() {
@Override
public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) {
progressDialog.dismiss();
JSONResponse jsonResponse = response.body();
data.addAll(Arrays.asList(jsonResponse.getAndroid()));
adapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<JSONResponse> call, Throwable t) {
progressDialog.dismiss();
Log.d("Error", t.getMessage());
}
});
}
else {
Toast.makeText(getActivity().getApplicationContext(), "Internet is disconnected", Toast.LENGTH_LONG).show();}
}
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
return false;
} else
return true;
}
}
अनुरोध सूची:
public interface RequestInterface {
@GET("Erfan/news.php")
Call<JSONResponse> getJSON();
}
अपडेट करें
हमेशा यह त्रुटि आपके json के बारे में नहीं है, यह आपके गलत अनुरोध से बन सकता है, बेहतर तरीके से हैंडल करने के लिए पहले डाकिया में अपने अनुरोध की जांच करें यदि आपको प्रतिक्रिया मिली है तो अपने मॉडल के साथ अपने json प्रतिक्रिया की तुलना करें यदि कुछ भी गलत नहीं है, तो यह त्रुटि आपके गलत अनुरोध से आती है, यह भी हो सकता है जब आपकी प्रतिक्रिया josn नहीं (कुछ मामलों में प्रतिक्रिया html हो सकती है)
System.out.println
, हाँ? एंड्रॉइड में आप Log
क्लास का उपयोग कर सकते हैं , लेकिन इससे कोई फर्क नहीं पड़ता। आपको डेटा नहीं मिल रहा है या कोई त्रुटि हो रही है JSONResponse jsonResponse = response.body();
। मुझे नहीं पता कि अपनी त्रुटि को कैसे ठीक करें क्योंकि यह नेटवर्किंग से संबंधित हो सकता है। आपको अपने आप उस मूल्य का निरीक्षण करने में सक्षम होना चाहिए।
response.body()