如何使用spring MVC构建以下JSON数组?我想使用Responsebody将以下JSON数组作为json响应返回。或者我可以使用javax.json
api来构建下面的JSON数组。
{
'DemoOrg' : {
'West' : {
'Alaska' : {
'Denali' : [ "Unit1", "Unit2" ],
'Anchorage' : [ "Unit3", "Unit4" ],
},
'Arizona' : {
'CottonWood' : [ "Unit5", "Unit6" ],
'Winslow' : [ "Unit7", "Unit8" ],
}
}
},
'TestOrg' : {
'SouthWest' : {
'Missouri' : {
'Kansas City' : [ "Unit9", "Unit10" ],
'Columbia' : [ "Unit11", "Unit12" ],
},
'Arkansas' : {
'Baxer' : [ "Unit13", "Unit14" ],
'Benton' : [ "Unit15", "Unit16" ],
}
}
}
};
答案 0 :(得分:0)
首先将此添加到您的pom.xml文件中:
<!-- Jackson JSON Mapper -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.1</version>
</dependency>
然后你必须定义MessageConverter。由于您使用的是带注释的配置,因此它应该如下所示
@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan(basePackages = "com.myapp.*")
public class AppConfiguration extends WebMvcConfigurerAdapter {
// you config stuff
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new ResourceHttpMessageConverter());
converters.add(new MappingJackson2HttpMessageConverter());
super.configureMessageConverters(converters);
}
}
MappingJackson2HttpMessageConverter
会将您的对象转换为JSON。
答案 1 :(得分:0)
要将数组作为JSON响应返回,您需要创建一个包含json对象值的模型类。让类的名称为ModelOrg。 然后,您可以使用以下代码返回json响应:
@RequestMapping(value="/orgclasses", method= RequestMethod.GET)
public @ResponseBody List<ModelOrg> findAllOrgClasses()
{
List<ModelOrg> orgclasses = new ArrayList<ModelOrg>();
ModelOrg testOrg = new ModelOrg();
// Set all values in testOrg
orgclasses.add(testOrg);
ModelOrg demoOrg = new ModelOrg();
// Set all values in demoOrg
orgclasses.add(demoOrg);
return orgclasses;
}
为此,您需要在pom.xml中添加jackson-mapper-asl,xstream,spring-oxm依赖项。您还需要在web.xml中配置servlet,以支持json响应:
<servlet-mapping>
<servlet-name>orgClassesServlet</servlet-name>
<url-pattern>*.json</url-pattern>
</servlet-mapping>
其中orgClassesServlet是我们的servlet。