我在java中有一个POJO类,我试图使用HashMap<>提取json,但是我得到了null。我不知道为什么?这是我的pojo课程
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的
List<NetworkConfiguration> networkConfigurations=new ArrayList<>;
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));
openNetworkConfigurationMap.put("NetworkConfigurations", networkConfigurations);
System.out.println(new JSONObject(openNetworkConfigurationMap));
System.out.println(networkConfigurations.get(0).getWiFi().getAutoConnect());现在,我正在打印networkConfigurations类中添加的值,并且正确的值正在打印,但是当我打印json时,它会给我{"NetworkConfigurations":[null]}。提前感谢您的帮助
发布于 2020-04-27 17:10:46
new JSONObject(map);Map<String, String>**!**.警告:这只适用于你的是地图所以不能工作。
您可以从它的文档http://stleary.github.io/JSON-java/index.html中获得其他函数
葛森也可以用于序列化任意复杂的对象。
下面是您如何使用它:
Gson gson = new Gson();
String json = gson.toJson(myObject); Gson将自动将集合转换为JSON数组。Gson可以序列化私有字段,并自动忽略瞬态字段。
代码:
List<NetworkConfiguration> networkConfigurations=new ArrayList<>;
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));
openNetworkConfigurationMap.put("NetworkConfigurations", networkConfigurations);
Gson gson = new Gson();
String json = gson.toJson(openNetworkConfigurationMap);
System.out.println(json);
System.out.println(networkConfigurations.get(0).getWiFi().getAutoConnect());此外,确保Gson库在您的构建路径中。如果是maven,可以将以下依赖项添加到pom文件中
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>如果您正在使用任何其他构建包(因为您在任何地方都没有提到),请执行适当的步骤来实现GSON。
https://stackoverflow.com/questions/61464272
复制相似问题