Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何使用GSON库解析JSON文件?_Android_Json_Gson - Fatal编程技术网

Android:如何使用GSON库解析JSON文件?

Android:如何使用GSON库解析JSON文件?,android,json,gson,Android,Json,Gson,我有一个Method,它返回最强WiFi接入点的SSID。映射数据位于原始文件夹中的文件名“ssid_number.txt”中。如果最强的WiFi接入点“KD WLAN热点”是,我如何在使用GSON库的情况下解析此文件以获得数字4 我是用下一种方法做的 我从url中提取了JSON字符串。那么 Gson gson = new Gson(); // create Gson obj currentResponse = gson.fromJson(resultJSON, City.class); c

我有一个Method,它返回最强WiFi接入点的SSID。映射数据位于原始文件夹中的文件名“ssid_number.txt”中。如果最强的WiFi接入点“KD WLAN热点”是,我如何在使用GSON库的情况下解析此文件以获得数字4

我是用下一种方法做的

我从url中提取了JSON字符串。那么

Gson gson = new Gson(); // create Gson obj
currentResponse = gson.fromJson(resultJSON, City.class); 
currentResponse是一个
json.toString()
输出

接下来,使用json对应的所有字段为json输出创建新类。看看我的工作代码:

public class City {

@SerializedName("name")
public String cityName;

public String getCityName() {
    return cityName;
   }
}
在您的情况下,它将类似于:

public class WiFi {

@SerializedName("cafeWifi")
public int wiFiAmount;

public int getWiFiAmount() {
    return wiFiAmount; 
   }
}
通过以下方法获取您的wifi数量:

WiFi wifi = new WiFi();
int a = wifi.getWiFiAmount();

为json响应创建POJO

 public class JsonResponsePojo {

    @SerializedName("KD Privat")
    @Expose
    private Integer KDPrivat;
    @SerializedName("KD WLAN Hotspot")
    @Expose
    private Integer KDWLANHotspot;
    @Expose
    private Integer treeWifi;
    @Expose
    private Integer cafeWifi;

    /**
    * 
    * @return
    * The KDPrivat
    */
    public Integer getKDPrivat() {
    return KDPrivat;
    }

    /**
    * 
    * @param KDPrivat
    * The KD Privat
    */
    public void setKDPrivat(Integer KDPrivat) {
    this.KDPrivat = KDPrivat;
    }

    /**
    * 
    * @return
    * The KDWLANHotspot
    */
    public Integer getKDWLANHotspot() {
    return KDWLANHotspot;
    }

    /**
    * 
    * @param KDWLANHotspot
    * The KD WLAN Hotspot
    */
    public void setKDWLANHotspot(Integer KDWLANHotspot) {
    this.KDWLANHotspot = KDWLANHotspot;
    }

    /**
    * 
    * @return
    * The treeWifi
    */
    public Integer getTreeWifi() {
    return treeWifi;
    }

    /**
    * 
    * @param treeWifi
    * The treeWifi
    */
    public void setTreeWifi(Integer treeWifi) {
    this.treeWifi = treeWifi;
    }

    /**
    * 
    * @return
    * The cafeWifi
    */
    public Integer getCafeWifi() {
    return cafeWifi;
    }

    /**
    * 
    * @param cafeWifi
    * The cafeWifi
    */
    public void setCafeWifi(Integer cafeWifi) {
    this.cafeWifi = cafeWifi;
    }

    }
阅读wifi-热点

 Gson gson=new Gson();
 JsonResponsePojo data=gson.fromJson(responseString, JsonResponsePojo.class);
 String kdWLanHotSpot=data.getKDPrivat();

查看您的数据,您的标识符似乎不是常量

在这种情况下,如果您使用typemap,它将起作用。比如说:

HashMap<String, Integer> mMap = null;
Type type = new TypeToken<HashMap<String, Integer>>() {}.getType();
mMap = new Gson().fromJson(json, type);
HashMap mMap=null;
Type Type=new-TypeToken(){}.getType();
mMap=new Gson().fromJson(json,类型);

您尝试过什么?您的方法很简单,但需要太多的代码行。我有200多个WIFI接入点。但它怎么知道“原始”文件夹中的json文件是正确的呢?
HashMap<String, Integer> mMap = null;
Type type = new TypeToken<HashMap<String, Integer>>() {}.getType();
mMap = new Gson().fromJson(json, type);