1

Just tried to run and I receive this error:

org.json.JSONException: Value ture at success of type java.lang.String cannot be converted to boolean

at org.json.JSON.typeMismatch(JSON.java:100)

at org.json.JSONObject.getBoolean(JSONObject.java:378)

I'm a beginner with Java and I can't seem to figure out why string won't convert to Boolean.

The error code comes up specifically on the "if" line and "else if" line.

The code:

public class RegisterActivity extends AppCompatActivity {

private ArrayAdapter adapter;
private Spinner spinner;
private String userID;
private String userPassword;
private String userGender;
private String userMajor;
private String userEmail;
private AlertDialog dialog;
private boolean validate = false;

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

    spinner = (Spinner) findViewById(R.id.majorSpinner);
    adapter = ArrayAdapter.createFromResource(this, R.array.major, android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    final EditText idText = (EditText) findViewById(R.id.idText);
    final EditText passwordText = (EditText) findViewById(R.id.passwordText);
    final EditText emailText = (EditText) findViewById(R.id.emailText);

    RadioGroup genderGroup = (RadioGroup) findViewById(R.id.genderGroup);
    int genderGroupID = genderGroup.getCheckedRadioButtonId();
    userGender = ((RadioButton) findViewById(genderGroupID)).getText().toString();

    genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int i) {

            RadioButton genderButton = (RadioButton) findViewById(i);
            userGender = genderButton.getText().toString();

        }
    });

    final Button validateButton = (Button) findViewById(R.id.validateButton);
    validateButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            String userID = idText.getText().toString();
            if(validate)
            {
                return;
            }
            if(userID.equals(""))
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                dialog = builder.setMessage("아이디는 빈 칸일 수 없습니다.")
                        .setPositiveButton("확인", null)
                        .create();
                dialog.show();
                return;
            }

            Response.Listener<String> responseListener = new Response.Listener<String>(){

                @Override
                public void onResponse(String response){
                    try
                    {
                        JSONObject jsonResponse = new JSONObject(response);
                        boolean success = jsonResponse.getBoolean("success");
                        if(success)
                        {
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("사용할 수 있는 아이디 입니다.")
                                    .setPositiveButton("확인", null)
                                    .create();
                            dialog.show();
                            idText.setEnabled(false);
                            validate = true;
                            idText.setBackgroundColor(getResources(). getColor(R.color.colorGray));
                            validateButton.setBackgroundColor(getResources(). getColor(R.color.colorGray));
                    }
                    else{
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("사용할 수 없는 아이디 입니다.")
                                    .setNegativeButton("확인", null)
                                    .create();
                            dialog.show();
                        }
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();
                    }

                }
            };
            ValidateRequest validateRequest = new ValidateRequest(userID, responseListener);
            RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
            queue.add(validateRequest);
        }
    });

    Button registerButton = (Button) findViewById(R.id.registerButton);
    registerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String userID = idText.getText().toString();
            String userPassword = passwordText.getText().toString();
            String userMajor = spinner.getSelectedItem().toString();
            String userEmail = emailText.getText().toString();


            if(!validate){

                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                dialog = builder.setMessage("먼저 중복 체크를 해주세요.")
                        .setNegativeButton("확인", null)
                        .create();
                dialog.show();
                return;

            }

            if(userID.equals("") || userPassword.equals("") || userMajor.equals("") || userEmail.equals("") || userGender.equals("")){
                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                dialog = builder.setMessage("빈 칸 없이 입력해주세요.")
                        .setNegativeButton("확인", null)
                        .create();
                dialog.show();
                return;

            }

            Response.Listener<String> responseListener = new Response.Listener<String>(){   #########Error here

                @Override
              public void onResponse(String response){  #########Error here
                    try
                    {
                        JSONObject jsonResponse = new JSONObject(response);
                        boolean success = jsonResponse.getBoolean("success");
                        if(success)
                        {
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("회원 등록이 성공했습니다.")
                                    .setPositiveButton("확인", null)
                                    .create();
                            dialog.show();
                            finish();

                        }
                        else {
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("회원 등록에 실패했습니다.")
                                    .setNegativeButton("확인", null)
                                    .create();
                            dialog.show();
                        }
                    }
                    catch (JSONException e)
                    {
                        e.printStackTrace();
                       // Toast.makeText(getApplicationContext(), "error",
                        //        Toast.LENGTH_SHORT).show();
                    }

                }
            };
            RegisterRequest registerRequest = new RegisterRequest(userID, userPassword, userGender, userMajor, userEmail, responseListener);
            RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
            queue.add(registerRequest);

        }
    });

}

@Override
protected void onStop(){
    super.onStop();
    if(dialog !=null)
    {
        dialog.dismiss();
        dialog = null;
    }
}

}

2 Answers 2

1

With this:

boolean success = jsonResponse.getBoolean("success");

you are trying to get a boolean value, but the value returned can not be converted to boolean, it's a string.
From your error log I see that it may be a value like "ture"!!!
So change it to:

String success = jsonResponse.getString("success");

and check it like:

if (success.equals("ture")) {
    //.........
}
Sign up to request clarification or add additional context in comments.

Comments

1

error message is saying itself everything.
org.json.JSONException: Value ture at success of type java.lang.String

the key (success ) holds a value as ture which is not boolean, instead it should be like true. so json is facing problem while converting it to boolean.

this issue is on webservice side, you have returned ture (not true) by mistake in webservice, so please make changes over there.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.