Member 11504333 Ответов: 2

Как удалить ошибку синтаксического анализа JSON


i write the below code to get data from WebAPI but it through the following errors how can remove this...
and one more thing that which IP address use for URL in genymotion Emulator
>> Caused by: java.lang.NullPointerException
>> at com.example.finalproject.Login$Myclass.doInBackground(Login.java:88)



package com.example.finalproject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
//import java.net.URI;
import java.net.URL;
//import java.net.URLConnection;
import java.nio.charset.MalformedInputException;
//import java.security.PublicKey;

//import android.R.string;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
//import android.util.Log;
//import android.view.Menu;
//import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Login extends Activity {
	
	TextView tvget;
	Button btnget;
	@Override
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_login);
		
		btnget=(Button)findViewById(R.id.btnjson);
		tvget=(TextView)findViewById(R.id.tvjson);
		
		btnget.setOnClickListener(new View.OnClickListener() {@Override
		public void onClick(View v) {
		//	Log.i("Error", "It's working");
			new Myclass().execute("http://192.168.1.201/newAPI/api/user");
		}
			
			
		});
		
	}		
		

	public class Myclass extends AsyncTask<String, String, String>{
	
		
		
		@Override
		protected String doInBackground(String... params) {
			HttpURLConnection connection= null;
			BufferedReader reader = null ;
			
			try {
			URL url=new URL(params[0]);
	connection=(HttpURLConnection)url.openConnection();
	connection.connect();
	InputStream instrm=connection.getInputStream();
	reader=new BufferedReader(new InputStreamReader(instrm));
	StringBuffer b=new StringBuffer() ;
	//String line="";
	while (reader.readLine()!=null) 
	{//line=reader;
		b.append(reader);

	}
	
	return b.toString();
	
	
		} 
			catch (MalformedInputException e) {
			e.printStackTrace();
		}
		
			catch (IOException e) {
		e.printStackTrace();	
		
		}
		finally {
			connection.disconnect();
			try {
				reader.close();
			} catch (IOException e2) {
				
			e2.printStackTrace();
			}
		}
		return null;
		
		
	}	//doinbackground method body end
				
		@Override
		protected void onPostExecute(String result) {
			
			super.onPostExecute(result);
					
			tvget.setText(result);
		}
	}//jsontask class body end
	
	}

2 Ответов

Рейтинг:
16

Richard Deeming

Глядя на ошибку, вы получаете NullPointerException на следующей строке:

reader.close();

Это означает, что reader объект есть null, что предполагает, что у вас есть еще одна ошибка, брошенная на одну из строк до того, как будет создан читатель.

Регистрация reader объект для null прежде чем пытаться позвонить в close метод:
if (reader != null) { reader.close(); }

Тогда вы сможете увидеть реальную ошибку, которая позволит вам диагностировать и решить проблему.


Good We

пробовать {
Log.e("Ответ"," " +Ответ);
JSONObject obj = новый JSONObject(ответ);
JSONArray user_holder = obj.getJSONArray("User_holder");
JSONObject user = user_holder.getJSONObject(0);
функция user_id=пользователей.и getString("идентификатор");
user_name=user.getString("имя_пользователя");
значение user_password=пользователей.и getString("пароль_пользователя");
user_emailid=пользователей.и getString("user_email");
PreferenceUtils.saveEmail(user_emailid,Register_Page.this);
PreferenceUtils.saveUsername(user_name,Register_Page.this);
PreferenceUtils.savePassword(user_password,Register_Page.this);
PreferenceUtils.saveUserid(user_id, Register_Page.this);
PreferenceUtils.saveLocalValue(localValue, Register_Page.this);
sharedPreferences.writeLginStastu(правда);
if(PreferenceUtils.getEmail(Register_Page.this)!=null || !PreferenceUtils.getEmail(Register_Page.this).равняется("")){
startActivity(new Intent(Register_Page.this, CongoCoin.class));
sharedPreferences.writeLginStastu(правда);
заканчивать();
}
} catch (JSONException e) {
е.печатные();
Log.e("User_json",""+e.toString());
}

Richard Deeming

Какое отношение этот случайный код имеет к уже решенному вопросу?

Good We

осуществление 'ком.Интуит.sdpdp-андроид:1.0.6'

Good We

реализация 'com.android.support:appcompat-v7:28.0.0'
реализация 'com.android.support:support-v4:28.0.0'
реализация 'com.android.support:design:28.0.0'
реализация 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
реализация 'de.hdodenhof:circleimageview:1.2.1'
реализация Facebook Facebook.android:facebook-login:4.40.0'
реализация 'com.android.support:customtabs:28.0.0'
реализация 'ком.андроид.поддержка:поддержка-мультимедиа-совместимость:28.0.0'
реализация 'com.android.support:recyclerview-v7:28.0.0'
реализация 'com.squareup.retrofit2:retrofit:2.3.0'
реализация 'com.squareup.retrofit2:конвертер-gson:2.2.0'
реализация 'com.jakewharton:butterknife:8.8.1'
аннотационный процессор 'com.jakewharton:butterknife-компилятор:8.8.1'
реализация 'com.android.volley:volley:1.1.0'
реализация 'com.github.bumptech.glide:glide:4.8.0'
реализация 'com.google.android.gms:play-services-auth:9.2.1'
реализация 'com.github.lzyzsd:circleprogress:1.1.0@aar'
реализация 'joda-time:joda-time:2.9.4'

Рейтинг:
1

Good We

try {
                           Log.e("Response",""+response);
                           JSONObject obj = new JSONObject(response);
                           JSONArray user_holder = obj.getJSONArray("User_holder");
                           JSONObject user = user_holder.getJSONObject(0);
                           user_id=user.getString("id");
                           user_name=user.getString("user_name");
                           user_password=user.getString("user_password");
                           user_emailid=user.getString("user_email");
                           PreferenceUtils.saveEmail(user_emailid,Register_Page.this);
                           PreferenceUtils.saveUsername(user_name,Register_Page.this);
                           PreferenceUtils.savePassword(user_password,Register_Page.this);
                           PreferenceUtils.saveUserid(user_id,  Register_Page.this);
                           PreferenceUtils.saveLocalValue(localValue,  Register_Page.this);
                           sharedPreferences.writeLginStastu(true);
                           if(PreferenceUtils.getEmail(Register_Page.this)!=null || !PreferenceUtils.getEmail(Register_Page.this).equals("")){
                               startActivity(new Intent(Register_Page.this, CongoCoin.class));
                               sharedPreferences.writeLginStastu(true);
                               finish();
                           }
                       } catch (JSONException e) {
                           e.printStackTrace();
                           Log.e("User_json",""+e.toString());
                       }


CHill60

Необъяснимый дамп кода-это не очень хорошее решение.