Android:用gson解析raw文件夹中的JSON文件?

Mr *_*ker 5 android json gson

我正在尝试使用 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)

Jay*_*dil 3

这:

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)