簡體   English   中英

將JSONObject解析為自定義類

[英]parsing JSONObject to custom class

我的自定義類中的數據未顯示。

我從php腳本中獲取了JSON對象,並將其存儲在String result ,然后嘗試將其插入到該類的自定義類Planets中,我通過get Method調用了特定變量,但該類未顯示在TextView result_tv

這是代碼:

String jsonString = result;
Gson gson = new Gson();
Planets seznamPlanet = gson.fromJson(jsonString, Planets.class);
this.result_tv.setText(seznamPlanet.getPlanetName());
//this.result_tv.setText(jsonString); this works

我的課是:

public class Planets {
    public String name;
    public Integer size;
    public Integer o2;
    public Integer atmosphere;

    public String getPlanetName() {
        return name;
    }

    public Integer getPlanetSize() {
        return size;
    }

    public Integer getPlanetO2() {
        return o2;
    }

    public Integer getPlanetAtmosphere() {
        return atmosphere;
    }
}

結果字符串中的JSON對象如下所示:

    {"Planets":[{"name":"Earth","size":"3","o2":"1","atmosphere":"1"},{"name":"Mars","size":"8","o2":"0","atmosphere":"0"}]}

將您的Planets類重命名為Planet (以避免沖突)

public class Planet {
  public String name;
  public Integer size;
  public Integer o2;
  public Integer atmosphere;
}

創建另一個名為PlanetsList

public class PlanetsList {
    List<Planet> Planets; //rename was useful so we don't have List<Planets> Planets
}

然后像這樣調用gson:

PlanetsList seznamPlanet = gson.fromJson(jsonString, PlanetsList.class);

嘗試這樣的事情:

 public class Planets {
    public Planet[] planets;

    @Override
    public String toString() {
        return (new Gson().toJson(this));
    }

    public final class Planet {
        public String name;
        public Integer size;
        public Integer o2;
        public Integer atmosphere;

        @Override
        public String toString() {
            return (new Gson().toJson(this));
        }
    }
}

暫無
暫無

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

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