我有一个返回最强WiFi接入点SSID的方法。映射的Tha数据位于原始文件夹中的文件名“ssid_number.txt”中。如果有最强的WiFi接入点“KD WLAN Hotspot”,如何在我的情况下使用GSON库解析此文件以获得数字4?
{
"KD Privat": 1,
"KD WLAN Hotspot": 4,
"treeWifi": 9,
"cafeWifi": 5 //I have here more that 200 WIFI access point
}
答案 0 :(得分:3)
我是从下一个方向做到的。
我从网址中删除了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();
答案 1 :(得分:1)
查看您的数据似乎您的标识符不是常量。
在这种情况下,如果您使用类型图,它将起作用。所以像这样:
HashMap<String, Integer> mMap = null;
Type type = new TypeToken<HashMap<String, Integer>>() {}.getType();
mMap = new Gson().fromJson(json, type);
答案 2 :(得分:0)
为您的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 -HotSpot
Gson gson=new Gson();
JsonResponsePojo data=gson.fromJson(responseString, JsonResponsePojo.class);
String kdWLanHotSpot=data.getKDPrivat();