gpt4 book ai didi

android - 使用 Gson 解析 JSON 文件

转载 作者:行者123 更新时间:2023-11-30 02:14:14 25 4
gpt4 key购买 nike

我有一个获取最强 Wifi 接入点信号的方法,avialabe 是并返回 SSID 字符串,所有这些 SSID 字符串都存储在 JSON 文件中的原始文件夹中:How can I access the file in the raw folder and parse如果 SSID“FR WLAN”是,它与 Gson 一起获取例如 route_number 6?

ssid_number JSON 文件:

{
"data": [
{
"ssid": "KD Privat",
"route_number": 1
},
{
"ssid": "KD WLAN Hotspot",
"route_number": 4
},
{
"ssid": "FR WLAN",
"route_number": 6
}
]
}

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
+ "]";
}



}

在 MainActivity 中解析 SSID:

             //parse the storeed json file"ssid_number" and get the route_number back.
private int parse_SSID(String route_string) {
// TODO Auto-generated method stub
InputStream is = getResources().openRawResource(R.raw.ssid_number);
Gson gson = new Gson();
WifiJSON obj = gson.fromJson(route_string, WifiJSON.class);


return 0;
}
}

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;
}
}

最佳答案

我试过你的代码,并做了一些修改。这对我有用。为了检查目的,我硬编码了 json 字符串。您可以从 raw 或 assets 文件夹中读取并继续。

    private int parse_SSID(String route_string) {
// TODO Auto-generated method stub
Gson gson = new Gson();
WiFiJSONList obj = gson.fromJson(route_string, WiFiJSONList.class);
//Now iterate through the list
List<WiFiJSON> wifijson = obj.getWifiList();
Iterator iterator = wifijson.iterator();
while (iterator.hasNext()) {
WiFiJSON wifielement = (WiFiJSON) iterator.next();
System.out.println(wifielement.getSsid() + "----" + wifielement.getRoute_number());
}
return 0;
}

用法会是这样:(其实在用gson解析json的时候,你的json字符串应该是一个单独的对象,而不是直接像一个数组。)

String json = "{\"data\": [{\"ssid\": \"KD Privat\",\"route_number\": 1},{\"ssid\": \"KD WLAN Hotspot\",\"route_number\": 4},{\"ssid\": \"FR WLAN\",\"route_number\": 6}]}";
parse_SSID(json);


public class WiFiJSON {

private String ssid;
private int route_number;

public String getSsid() {
return ssid;
}
public void setSsid(String ssid) {
this.ssid = ssid;
}
public int getRoute_number() {
return route_number;
}
public void setRoute_number(int route_number) {
this.route_number = route_number;
}

public class WiFiJSONList {

private ArrayList<WiFiJSON> data;

public ArrayList<WiFiJSON> getWifiList() {
return data;
}

public void setWifiList(ArrayList<WiFiJSON> wifiList) {
this.data = wifiList;
}

让我知道这是否有效。

关于android - 使用 Gson 解析 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29633466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com