我有一个班级:
public class PetModel{
Serialized("cat")
String cat;
Serialized("dog")
String dog;
// getters and setters
}
当我使用这样的改造进行POST时:
@FormUrlEncoded
@POST("/pet/{id}")
Pets postPets(@Path("id") String id,@Field("pets") ArrayList<PetModel> pets);
在日志中,我看到请求发送<package_name>.PetModel@cc49e70
而不是自己发送值。我做错了什么?
答案 0 :(得分:0)
请尝试下面的方法,可能是你会得到解决方案
PrintWriter out = response.getWriter();
List<Countries> country = new ArrayList<Countries>();
country = FetchData.getAllCountries();
JSONObject js = new JSONObject();
js.put("countries", country); // make sure the Country class overrides toString()
// set the response content-type
response.setContentType("application/json");
// writing the json-array to the output stream
out.print(js.toJSONString());
out.flush();
答案 1 :(得分:0)
如果您可以访问服务器端代码并且可以更改它,只需添加一个viewmodel或类似于包含泛型类型T的数组列表的类。然后,每个使用arraylists的地方都会使用它。
从服务器检索String类型时存在类似的问题,可以通过相同的方式解决。
答案 2 :(得分:0)
覆盖PetModel
课程中的public class PetModel {
Serialized("cat")
String cat;
Serialized("dog")
String dog;
// getters and setters
@Override
public String toString() {
return "Cat " + cat + " Dog " + dog;
}
}
方法。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>myproject</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>3.0.0</version>
</extension>
</extensions>
</build>
<distributionManagement>
<repository>
<id>internal</id>
<url>scpexe://maven@myserver.com/home/maven</url>
</repository>
</distributionManagement>
</project>