마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

W/System.err: org.json.JSONException: No value for user_id 에러ㅠ

0 추천
package com.example.bussystem;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

public class LoginActivity extends AppCompatActivity {

    private EditText edit_id, edit_pw;
    private Button btn_login, btn_register;

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

        edit_id = findViewById( R.id.edit_id );
        edit_pw = findViewById( R.id.edit_pw );

        btn_register = findViewById( R.id.btn_register );
        btn_register.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent( LoginActivity.this, RegisterActivity.class );
                startActivity( intent );
            }
        });


        btn_login = findViewById( R.id.btn_login );
        btn_login.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String user_id = edit_id.getText().toString();
                String user_pwd = edit_pw.getText().toString();

                Response.Listener<String> responseListener = new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonObject = new JSONObject(response);
                            boolean success = jsonObject.getBoolean("success");

                            if (success) {//로그인 성공시

                                String user_id = jsonObject.getString("user_id");
                                String user_pwd = jsonObject.getString("user_pwd");
                                String user_name = jsonObject.getString("user_name");
                                String user_birth = jsonObject.getString("user_birth");
                                String user_phone = jsonObject.getString("user_phone");
                                /*String user_Type = jsonObject.getString( "user_Type" );*/

                                Toast.makeText(getApplicationContext(), "로그인 성공", Toast.LENGTH_SHORT).show();
                                Intent intent = new Intent(LoginActivity.this, Home.class); //로그인 성공하면 home(잔여시간있는곳) intent띄움

                                intent.putExtra("user_id", user_id);
                                intent.putExtra("user_pwd", user_pwd);
                                intent.putExtra("user_name", user_name);
                                intent.putExtra("user_birth", user_birth);
                                intent.putExtra("user_phone", user_phone);
                                // intent.putExtra( "user_Type", user_Type );

                                startActivity(intent);

                            } else {//로그인 실패시
                                Toast.makeText(getApplicationContext(), "로그인 실패", Toast.LENGTH_SHORT).show();
                                return;
                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                };
                LoginRequest loginRequest = new LoginRequest(user_id, user_pwd, responseListener);
                RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
                queue.add(loginRequest);
            }


            
        });
    }
}

php파일을 이용해서 db랑 연결하여 로그인과 회원가입을 구현하고 있는데 계속 로그인이 안됩니다...빌드는 정상적으로 되는데 뭐가 문제일까요ㅠㅠ

W/System.err: org.json.JSONException: No value for user_id

이렇게 오류가 뜹니다

 

doobg (200 포인트) 님이 2020년 6월 2일 질문

2개의 답변

+1 추천
 
채택된 답변
아 그렇군요!
그러면 첫번째로 다른 보내는 시점에서 다른 파라메터들에 대한 정보가 정확히 들어가있는지 확인해보세요

혹시 마지막에 success를 저장한후에 보내시나요?

그렇다는 가정하에 put 하실때 다른 정보들을 차례대로지우고 덮어 쓰시고 있을수도... 데이터를 보내기전에 값을 한번확인해보세요 값이 제대로 들어가있는지.

나중에 gson 이라는것도 알아보세요 class를 만들면 알아서 json객체를 매칭해줍니다.
익명사용자 님이 2020년 6월 3일 답변
doobg님이 2020년 6월 16일 채택됨
php 코드에 오류가 있었습니다 ㅠㅠ 답변감사합니다
다행이군요.다행이군요.다행이군요.다행이군요.다행이군요.다행이군요.다행이군요.다행이군요.다행이군요.다행이군요.
0 추천

No->아니 

value->값 

for -> ~에대한

user_id ->json param

 

user_id에 대한 값이 없습니다

이거 구글번역으로 번역한거거든요? 이유를 적어 놓으시고 물어보시다니.. 

익명사용자 님이 2020년 6월 3일 답변
아 질문디 잘못 됐네요. 코드 전체적으로 확인을 계속하고 로그를 찍어보니 json response안에 값이 success만 저장 되어있다고 뜹니다.
어디서 잘못 연결하면 이렇게 되는지 궁금해서... 아직 해결 못했습니다
...