繁体   English   中英

正确的GSON调用将JSON对象转换为Java对象

[英]Correct GSON call to convert from JSON objects to Java objects

请在这里建议正确的方法来调用GSON以转换为java对象。

final JSONObject jsonBody = new JSONObject();
    try {
        jsonBody.put("user",user);
        jsonBody.put("password",pass);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    Log.d(TAG, "CheckForResponse: "+jsonBody.toString());
    JsonObjectRequest JSONObjectRequest = new JsonObjectRequest(AppConfig.URL_LOGIN, jsonBody, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            Log.d("Response",response.toString());

//How to call GSON here?

            Token token = new Gson().fromJson(String.valueOf(response), Token.class);

            Token token1 = new Token();
            User user1 = new User();
            Log.d(TAG, "Triplet: onCreate: "+token1.getToken());
            Log.d(TAG, "Triplet: onCreate: "+user1.getUsername());

            Toast.makeText(TLogin.this, "InsideResponse : Welcome", Toast.LENGTH_SHORT).show();
            Intent goToMainScreen = new Intent(TLogin.this,GameMenu.class);
            startActivity(goToMainScreen);
            overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            if(error != null && error.getMessage() != null)
            {
                Log.e("Response error", error.getMessage());
            }
        }
    }
    );
    AppController.getInstance().addToRequestQueue(JSONObjectRequest);

发布脚本:我已经为JSON中的java对象的getter和setter创建了POJO类。

JSON数据

{
"token":"ezI1NiJ9.eyJ1c2Vn0.028Kmtp",

"user":
{
    "id":"57a5ff5",
    "avatar":10,
    "username":"abc",
    "rating":12,
    "facebookPicture":"https:\/\/graph.facebook.com\/v2.5\/11642925\/picture?type=square&width=200&height=200"
}
}

POJO类Token.java

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
            @Generated("org.jsonschema2pojo")
            public class Token {

            @SerializedName("token")
            @Expose
            private String token;
            @SerializedName("user")
            @Expose
            private User user;

            /**
            * 
            * @return
            * The token
            */
            public String getToken() {
            return token;
            }

            /**
            * 
            * @param token
            * The token
            */
            public void setToken(String token) {
            this.token = token;
            }

            /**
            * 
            * @return
            * The user
            */
            public User getUser() {
            return user;
            }

            /**
            * 
            * @param user
            * The user
            */
            public void setUser(User user) {
            this.user = user;
            }

            }

User.java

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
            @Generated("org.jsonschema2pojo")
            public class User {

            @SerializedName("id")
            @Expose
            private String id;
            @SerializedName("avatar")
            @Expose
            private Integer avatar;
            @SerializedName("username")
            @Expose
            private String username;
            @SerializedName("rating")
            @Expose
            private Integer rating;
            @SerializedName("facebookPicture")
            @Expose
            private String facebookPicture;

            /**
            * 
            * @return
            * The id
            */
            public String getId() {
            return id;
            }

            /**
            * 
            * @param id
            * The id
            */
            public void setId(String id) {
            this.id = id;
            }

            /**
            * 
            * @return
            * The avatar
            */
            public Integer getAvatar() {
            return avatar;
            }

            /**
            * 
            * @param avatar
            * The avatar
            */
            public void setAvatar(Integer avatar) {
            this.avatar = avatar;
            }

            /**
            * 
            * @return
            * The username
            */
            public String getUsername() {
            return username;
            }

            /**
            * 
            * @param username
            * The username
            */
            public void setUsername(String username) {
            this.username = username;
            }

            /**
            * 
            * @return
            * The rating
            */
            public Integer getRating() {
            return rating;
            }

            /**
            * 
            * @param rating
            * The rating
            */
            public void setRating(Integer rating) {
            this.rating = rating;
            }

            /**
            * 
            * @return
            * The facebookPicture
            */
            public String getFacebookPicture() {
            return facebookPicture;
            }

            /**
            * 
            * @param facebookPicture
            * The facebookPicture
            */
            public void setFacebookPicture(String facebookPicture) {
            this.facebookPicture = facebookPicture;
            }

            }

插入

Log.d(TAG, "Triplet: onCreate: "+token1.getToken());
Log.d(TAG, "Triplet: onCreate: "+user1.getUsername());

采用

Log.d(TAG, "Triplet: onCreate: "+token.getToken());
Log.d(TAG, "Triplet: onCreate: "+token.getUser().getUsername());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM