dougezhua0017 2016-01-25 07:47
浏览 35
已采纳

如何从JSON设置数据?

I am new to android JSON programming. I want to use set and get function in this program ,but when i used get() for full_name,getting null.

public class LoginActivity extends FragmentActivity {

    private EditText userName;
    private EditText password;
    private TextView forgotPassword;
    private TextView backToHome;
    private Button login;
    private CallbackManager callbackManager;
    private ReferanceWapper referanceWapper;
    Context context;
    String regid;
    GoogleCloudMessaging gcm;
    String SENDER_ID = "918285686540";

    public static final String PROPERTY_REG_ID = "registration_id";
    private static final String PROPERTY_APP_VERSION = "appVersion";
    private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
    static final String TAG = "GCM";


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Utility.setStatusBarColor(this, R.color.tranparentColor);
        Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/OpenSans_Regular.ttf");

        userName = (EditText) findViewById(R.id.userName);
        userName.setTypeface(tf);
        userName.setFocusable(false);
        userName.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent paramMotionEvent) {
                userName.setFocusableInTouchMode(true);
                return false;
            }
        });

        password = (EditText) findViewById(R.id.passwordEText);
        password.setTypeface(tf);
        password.setFocusable(false);
        password.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View paramView, MotionEvent paramMotionEvent) {
                password.setFocusableInTouchMode(true);
                return false;
            }
        });

        forgotPassword = (TextView) findViewById(R.id.forgotPassword);
        forgotPassword.setTypeface(tf);
        forgotPassword.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(),ForgotPasswordActivity.class);
                startActivity(intent);
            }
        });

        backToHome = (TextView) findViewById(R.id.fromLogToHome);
        backToHome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
        login = (Button) findViewById(R.id.loginBtn);

        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                doLoginTask();
                //  Intent intent = new Intent(getApplicationContext(), AfterLoginActivity.class);
                //  startActivity(intent);

            }
        });
    }


    private void doLoginTask() {

        String strEmail = userName.getText().toString();
        String strPassword = password.getText().toString();
        if (strEmail.length() == 0) {
            userName.setError("Email Not Valid");
        } else if (!Utility.isEmailValid(strEmail.trim())) {
            userName.setError("Email Not Valid");
        } else if (strPassword.length() == 0) {
            password.setError(getString(R.string.password_empty));
        } else {

            JSONObject jsonObject = null;
            try {
                jsonObject = new JSONObject();
                jsonObject.putOpt(Constants.USER_NAME, strEmail);
                jsonObject.putOpt(Constants.USER_PASSWORD, strPassword);
                jsonObject.putOpt(Constants.DEVICE_TOKEN, "11");
                jsonObject.putOpt(Constants.MAC_ADDRESS, "111");
                jsonObject.putOpt(Constants.GPS_LATITUDE, "1111");
                jsonObject.putOpt(Constants.GPS_LONGITUDE, "11111");
            } catch (JSONException e) {
                e.printStackTrace();
            }
            final ProgressDialog pDialog = new ProgressDialog(this);
            pDialog.setMessage("Loading...");
            pDialog.show();

            CustomJSONObjectRequest jsonObjectRequest = new CustomJSONObjectRequest(Request.Method.POST, Constants.USER_LOGIN_URL, jsonObject, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    pDialog.dismiss();
                    Log.e("LoginPage", "OnResponse =" + response.toString());
                    getLogin(response);
                    //LoginBean lb = new LoginBean();
                    //Toast.makeText(getApplicationContext(),lb.getFull_name()+"Login Successfuly",Toast.LENGTH_LONG).show();
                    Intent intent = new Intent(getApplicationContext(),AfterLoginActivity.class);
                    startActivity(intent);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getApplicationContext(),"Something, wrong please try again",Toast.LENGTH_LONG).show();
                    pDialog.dismiss();

                }
            });
            jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
                    5000,
                    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
            Log.e("LoginPage", "Url= " + Constants.USER_LOGIN_URL + " PostObject = " + jsonObject.toString());
            AppController.getInstance().addToRequestQueue(jsonObjectRequest);
        }

    }

    private void getLogin(JSONObject response) {
        if (response != null){
            try {
                JSONObject jsonObject = response.getJSONObject("data");
                LoginBean loginBean = new LoginBean();
                loginBean.setUser_id(jsonObject.getString("user_id"));
                loginBean.setFull_name(jsonObject.getString("full_name"));
                loginBean.setDisplay_name(jsonObject.getString("display_name"));
                loginBean.setUser_image(jsonObject.getString("user_image"));
                loginBean.setGender(jsonObject.getString("gender"));
                loginBean.setAuthorization_key(jsonObject.getString("authorization_key"));

                //  signUpArrayList.add(signUpBean);

            } catch (JSONException e) {
                e.printStackTrace();
            }
            // dataBean.setSignUp(signUpArrayList);
        }
        LoginBean loginBean = new LoginBean();
        Toast.makeText(getApplicationContext(),"Hello"+loginBean.getFull_name(),Toast.LENGTH_LONG).show();

    }


    public void onBackPressed() {
        finish();
    }

}

JSON Input:

"{
""user_name"":""ashish@soms.in"",
""user_password"":""123456"",
""device_token"":""1111"",
""mac_address"":""1111"",
""gps_latitude"":""1111"",
""gps_longitude"":""1111""
}"

Here is JSON Response:

{
    ""data"": {
        ""user_id"": ""90"",
        ""full_name"": ""ashish"",
        ""display_name"": ""ashish"",
        ""user_image"": ""images/noimage.png"",
        ""gender"": ""0"",
        ""authorization_key"": ""4eef1d65f7b470dbca881fe6452ec11457f54489""
    }
}
  • 写回答

1条回答 默认 最新

  • dpba63888 2016-01-25 08:20
    关注

    pls comment line LoginBean loginBean = new LoginBean(); then try .

    try this code

    private void getLogin(JSONObject response) {
         LoginBean loginBean=null;
        if (response != null){
            try {
                loginBean = new LoginBean();
                JSONObject jsonObject = response.getJSONObject("data");
                loginBean.setUser_id(jsonObject.getString("user_id"));
                loginBean.setFull_name(jsonObject.getString("full_name"));
                loginBean.setDisplay_name(jsonObject.getString("display_name"));
                loginBean.setUser_image(jsonObject.getString("user_image"));
                loginBean.setGender(jsonObject.getString("gender"));
                loginBean.setAuthorization_key(jsonObject.getString("authorization_key"));
    
                //  signUpArrayList.add(signUpBean);
    
            } catch (JSONException e) {
                e.printStackTrace();
            }
            // dataBean.setSignUp(signUpArrayList);
        }
        Toast.makeText(getApplicationContext(),"Hello"+loginBean.getFull_name(),Toast.LENGTH_LONG).show();
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记