簡體   English   中英

如何使用翻新和gson在android中處理嵌套的json對象/數組?

[英]How to handle nested json objects/arrays in android using retrofit and gson?

這是我的json對象結構:

   object   {1}

      products  [3]

            0   {14}

            1   {14}

            2   {14}

這是我的代碼:

gitapi.java

public interface gitapi {
    @GET("/admin/API/{user}")
    public void getFeed(@Path("user") String user, Callback<gitmodel> response);    
}

MainActivity.java

Button click;
TextView tv;
EditText edit_user;
ProgressBar pbar;
String API = "http://xxyyzz.com";                         //BASE URL

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

    click = (Button) findViewById(R.id.button);
    tv = (TextView) findViewById(R.id.tv);
    edit_user = (EditText) findViewById(R.id.edit);
    pbar = (ProgressBar) findViewById(R.id.pb);
    pbar.setVisibility(View.INVISIBLE);

    click.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String user = edit_user.getText().toString();
            pbar.setVisibility(View.VISIBLE);

            //Retrofit section start from here...
            RestAdapter restAdapter = new RestAdapter.Builder()
                    .setEndpoint(API).build();                                        //create an adapter for retrofit with base url

            gitapi git = restAdapter.create(gitapi.class);                            //creating a service for adapter with our GET class

            //Now ,we need to call for response
            //Retrofit using gson for JSON-POJO conversion

            git.getFeed(user, new Callback<gitmodel>() {
                @Override
                public void success(gitmodel gitmodel, Response response) {
                    //we get json object from github server to our POJO or model class

                    tv.setText("getTitle :" + gitmodel.getTitle());

                    pbar.setVisibility(View.INVISIBLE);                               //disable progressbar
                }

                @Override
                public void failure(RetrofitError error) {
                    tv.setText(error.getMessage());
                    pbar.setVisibility(View.INVISIBLE);                               //disable progressbar
                }
            });
        }
    });
}

問題是我不知道如何訪問內部json對象。 有沒有辦法做到這一點。

從jsonschemaa2pojo.com我得到的pojo文件是2個文件,一個是gitmodel.java,另一個是product.java。 我的問題是如何訪問json對象中的對象。

例如:您可以看到tv.setText(“ getTitle:” + gitmodel.getTitle()); 在MainActivity.java中,這是我想要實現的。 我想調用方法以訪問內部對象。 謝謝...

您必須使用以下鏈接創建POJO: http : //www.jsonschema2pojo.org/

在此鏈接中,選擇源類型:JSON注釋樣式:GSON ,然后單擊預覽 ,它將根據您的Json創建pojo,您將輕松解析json。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM