Я пытаюсь разобрать JSON-файл «ssid-number» в исходной папке с GSON. Метод parse_SSID анализирует файл JSON и находит сопоставление для переданной строки SSID. Я получаю на momenat эту ошибку: The method getWifiList() is undefined for the type WifiJSON
на этой линии List<WifiJSON> wifijson = obj.getWifiList();
. Правильно ли мой подход?Android: разобрать файл JSON в необработанной папке с помощью gson?
JSON файл:
{
"data": [
{
"ssid": "KD Privat",
"route_number": 1
},
{
"ssid": "KD WLAN Hotspot",
"route_number": 4
},
{
"ssid": "FR WLAN",
"route_number": 6
}
]
}
метод parse_SSID в MainActivity:
private int parse_SSID(String ssid) {
InputStream raw = getResources().openRawResource(R.raw.ssid_number);
Reader rd = new BufferedReader(new InputStreamReader(raw));
Gson gson = new Gson();
WifiJSON obj = gson.fromJson(rd, WifiJSON.class);
// Now iterate through the list
List<WifiJSON> wifijson = obj.getWifiList(); //here is my error.
Iterator iterator = wifijson.iterator();
while (iterator.hasNext()) {
WifiJSON wifielement = (WifiJSON) iterator.next();
System.out.println(wifielement.getSsid() + "----"
+ wifielement.getRoute_number());
}
}
WifiJSON класса:
public class WifiJSON {
private String ssid;
private int route_number;
public WifiJSON(String ssid, int route_number) {
this.ssid = ssid;
this.route_number = route_number;
}
private String getSsid() {
return ssid;
}
private void setSsid(String ssid) {
this.ssid = ssid;
}
private int getRoute_number() {
return route_number;
}
private void setRoute_number(int route_number) {
this.route_number = route_number;
}
@Override
public String toString() {
return "WifiJSON [ssid=" + ssid + ", route_number=" + route_number
+ "]";
}
}
WiFiJSONList класс:
import java.util.ArrayList;
public class WiFiJSONList {
private ArrayList<WifiJSON> data;
public ArrayList<WifiJSON> getWifiList() {
return data;
}
public void setWifiList(ArrayList<WifiJSON> wifiList) {
this.data = wifiList;
}
}
Не было бы проще просто сделать JSONObject? – Longi
если он работает, тогда это нормально, но я использовал gson, потому что я прочитал, что это самый простой подход. Я добавлю еще SSID и route_number. Около 400 пар в файл JSON. –
. Перечитайте [this] (http://stackoverflow.com/a/29633998/2835243) ответ, который вы получили раньше. 'getWifiList' является получателем в классе' WiFiJSONList'. Тем не менее, вы вызываете его на объект WifiJSON. – TheWanderingMind