Java 将JSON转换为POJO
我将Jersey用于REST WS,我的响应是JSONJava 将JSON转换为POJO,java,json,jersey,Java,Json,Jersey,我将Jersey用于REST WS,我的响应是JSON 我想将此响应转换为POJO。如何进行转换?要在Java和JSON之间进行转换,有很多API可供选择 您可以“手动”逐步遍历JSON组件并提取值来填充Java对象,也可以使用JSON到Java绑定API来处理许多低级映射问题 就是这样一个API。它易于使用,并提供了可能是最完整的API功能集,以解决常见问题和定制。StackOverflow.com提供了许多如何使用它的示例。作为一个选项,您可以选择。您还可以使用JaxB绑定,它将为您处理与之
我想将此响应转换为POJO。如何进行转换?要在Java和JSON之间进行转换,有很多API可供选择 您可以“手动”逐步遍历JSON组件并提取值来填充Java对象,也可以使用JSON到Java绑定API来处理许多低级映射问题
就是这样一个API。它易于使用,并提供了可能是最完整的API功能集,以解决常见问题和定制。StackOverflow.com提供了许多如何使用它的示例。作为一个选项,您可以选择。您还可以使用JaxB绑定,它将为您处理与之之间的转换。它是JavaSE的一部分,因此不需要jar下载。但是,您需要编写一个pojo类,其中包含json对象将返回的所有属性以及评估这些属性的访问器方法。然后,您将在该类上添加一个XmlRootElement注释,这将使jaxb能够在必要时与json进行转换。例如:
@GET
@Produces (MediaType.APPLICATION_JSON)
public Response getUser ()
{
User user = new User ();
user.setName ("John Doe");
return Response.status (Status.OK).entity (user).build ();
}
波乔
}
泽西岛服务
@GET
@Produces (MediaType.APPLICATION_JSON)
public User getUser ()
{
User user = new User ();
user.setName ("John Doe");
return user;
}
这将转换用户POJO对象并返回它
具有此示例JSON中指定的媒体类型。你甚至可以回来
它使用一个响应对象。例如:
@GET
@Produces (MediaType.APPLICATION_JSON)
public Response getUser ()
{
User user = new User ();
user.setName ("John Doe");
return Response.status (Status.OK).entity (user).build ();
}
这将返回代码为200(成功)的响应对象以及用户JSON
对象[注意]此方法是首选方法,因为它提供调用
您的web服务有关事务或服务状态的信息我们还可以在pom文件中使用以下给定的依赖项和插件
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>1.7.1</version>
</dependency>
<plugin>
<groupId>com.googlecode.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.3.7</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>com.example.types</targetPackage>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
我也在寻找同样的方法,因为其他人要求您为变量添加注释或编写/生成getter和setter方法,所以我编写了自己的编解码器来使用反射处理JSONPOJO转换
请参见此处:我正在这样做:WebResource=client.resource(urlStr);accept(MediaType.APPLICATION_JSON);GenericType GenericType=新的GenericType(){};列表响应=null;尝试{response=resource.get(genericType);}catch(UniformInterfaceException ue){ClientResponse-ClientResponse=ue.getResponse();}但我遇到了以下错误:GRAVE:Java类Java.util.List的消息体读取器和Java类型。。。未找到我建议在新问题中发布此消息。有关错误消息、导致错误的特定代码行以及出错时相关组件的值的信息越多越好。Did:)
Gson gson = new GsonBuilder().create();
String payloadStr = gson.toJson(data.getMerchant().getStakeholder_list());