首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从hashmap和gson获取正确的json

无法从hashmap和gson获取正确的json
EN

Stack Overflow用户
提问于 2020-04-28 18:32:56
回答 1查看 24关注 0票数 0

我正在使用GSON和hashmap从pojo类获取一些json。这是Pojo类

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

    @SerializedName("GUID")
    @Expose
    private String gUID;
    @SerializedName("Name")
    @Expose
    private String name;
    @SerializedName("Type")
    @Expose
    private String type;
    @SerializedName("WiFi")
    @Expose
    private WiFi wiFi;

    public NetworkConfiguration() {
    }
    public NetworkConfiguration(String gUID, String name, String type, WiFi wiFi) {
        super();
        this.gUID = gUID;
        this.name = name;
        this.type = type;
        this.wiFi = wiFi;
    }

    public String getGUID() {
        return gUID;
    }

    public void setGUID(String gUID) {
        this.gUID = gUID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public WiFi getWiFi() {
        return wiFi;
    }

    public void setWiFi(WiFi wiFi) {
        this.wiFi = wiFi;
    }

}

这就是我试图获得JSON的方法

代码语言:javascript
复制
  WiFi wiFi = new WiFi();
                        wiFi.setPassphrase(open_network_configuration_wifi_password_edit.getText().toString());
                        wiFi.setSecurity(spinner_open_network_configuration_wifi_security.getSelectedItem().toString());
                        wiFi.setSSID(open_network_configuration_wifi_ssid_edit.getText().toString());
                        if (open_network_configuration_wifi_autoconnect_option.isChecked()) {
                            wiFi.setAutoConnect(true);
                        } else {
                            wiFi.setAutoConnect(false);
                        }
                        Map<String, Object> openNetworkConfigurationMap = new HashMap<>();

                        networkConfigurations.add(new NetworkConfiguration(open_network_configuration_guid_edit.getText().toString(),
                                open_network_configuration_name_edit.getText().toString(), "WiFi", wiFi));
                        Gson gson = new Gson();
                        String json = gson.toJson(networkConfigurations);
                        Map<String,Object> result = new Gson().fromJson(json, Map.class);

                        openNetworkConfigurationMap.put("NetworkConfigurations", json);

这就是我所得到的

代码语言:javascript
复制
NetworkConfigurations= [{
    "GUID": "a",
    "Name": "Example A",
    "Type": "WiFi",
    "WiFi": {
      "SSID": "Example A",
      "Security": "None",
      "AutoConnect": true
    }
  }]

这是错误的。这就是我所期待的

代码语言:javascript
复制
"NetworkConfigurations": [{
    "GUID": "a",
    "Name": "Example A",
    "Type": "WiFi",
    "WiFi": {
      "SSID": "Example A",
      "Security": "None",
      "AutoConnect": true
    }
  }]

主要是担心我会得到一个等号=,但它应该是NetworkConfigurations之后的:,任何形式的帮助都将不胜感激。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-04-28 18:39:28

只需在末尾添加以下内容:

代码语言:javascript
复制
String json = gson.toJson(openNetworkConfigurationMap);

并打印输出的json

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61478104

复制
相关文章

相似问题

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