首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:如何用GSON库解析JSON文件?

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

Stack Overflow用户
提问于 2015-04-14 12:42:04
回答 3查看 562关注 0票数 2

我有一个方法,它返回最强WiFi访问点的SSID。映射的Tha数据位于原始文件夹中的文件名“ssid_number.txt”中。如果最强的WiFi接入点“KD无线局域网热点”是“KD无线局域网热点”,我如何用GSON库解析这个文件以获得数字4?

代码语言:javascript
复制
{
    "KD Privat": 1,
    "KD WLAN Hotspot": 4,
    "treeWifi": 9,
    "cafeWifi": 5  //I have here more that 200 WIFI access point

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-14 12:58:39

我是从下一条路来的。

我从一个url中提取了JSON字符串。然后,

代码语言:javascript
复制
Gson gson = new Gson(); // create Gson obj
currentResponse = gson.fromJson(resultJSON, City.class); 

currentResponse是一个json.toString()输出。

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

代码语言:javascript
复制
public class City {

@SerializedName("name")
public String cityName;

public String getCityName() {
    return cityName;
   }
}

就你的情况而言,这就像:

代码语言:javascript
复制
public class WiFi {

@SerializedName("cafeWifi")
public int wiFiAmount;

public int getWiFiAmount() {
    return wiFiAmount; 
   }
}

通过这种方法获取您的wifi数量:

代码语言:javascript
复制
WiFi wifi = new WiFi();
int a = wifi.getWiFiAmount();
票数 3
EN

Stack Overflow用户

发布于 2015-04-14 13:08:18

从您的数据来看,您的标识符似乎不是固定的。

在这种情况下,如果您使用类型地图,它就会工作。所以就像这样:

代码语言:javascript
复制
HashMap<String, Integer> mMap = null;
Type type = new TypeToken<HashMap<String, Integer>>() {}.getType();
mMap = new Gson().fromJson(json, type);
票数 1
EN

Stack Overflow用户

发布于 2015-04-14 13:03:26

为json响应创建POJO。

代码语言:javascript
复制
 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

代码语言:javascript
复制
 Gson gson=new Gson();
 JsonResponsePojo data=gson.fromJson(responseString, JsonResponsePojo.class);
 String kdWLanHotSpot=data.getKDPrivat();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29627622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档