我正在尝试使用 GSON 解析原始文件夹中的 JSON 文件“ssid-number”。parse_SSID 方法解析 JSON 文件并查找传递的 SSID 字符串的映射。我遇到了这个错误:The method getWifiList() is undefined for the type WifiJSONat this line List<WifiJSON> wifijson = obj.getWifiList();。我的做法正确吗?
JSON 文件:
{
"data": [
{
"ssid": "KD Privat",
"route_number": 1
},
{
"ssid": "KD WLAN Hotspot",
"route_number": 4
},
{
"ssid": "FR WLAN",
"route_number": 6
}
]
}
Run Code Online (Sandbox Code Playgroud)
MainActivity 中的 parse_SSID 方法:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
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
+ "]";
}
}
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)
这:
WifiJSON obj = gson.fromJson(rd, WifiJSON.class);
Run Code Online (Sandbox Code Playgroud)
应该
WiFiJSONList obj = gson.fromJson(rd, WiFiJSONList.class);
Run Code Online (Sandbox Code Playgroud)