【问题标题】:Return json array in Spring 4 RESTful Web Service在 Spring 4 RESTful Web 服务中返回 json 数组
【发布时间】:2014-11-03 14:33:09
【问题描述】:

我正在使用 Spring 和 Rstful webservices 编写应用程序。

我想要格式的 JSOn

{companies : [{name:"companyName", industry : "companyIndustry"} ,
 {name:"companyName", industry : "companyIndustry"}, ]}

但是当我触发 url 时,我会以不同的格式获取 JSON

{
companies: [5]
0:  {
companyName: "Uber"
industry: "Transportation"
}-
1:  {
companyName: "CVS"
industry: "Pharmacy"
}-
2:  {
companyName: "Orange"
industry: "Telecom"
}-
3:  {
companyName: "BostonDynamics"
industry: "Robotics"
}-
4:  {
companyName: "Tesla"
industry: "Transportation"
}-
-
}

我的代码

@RestController
public class CompanyController {


public static final Company companiesArray[] = {
        new Company("Uber", "Transportation"),
        new Company("CVS", "Pharmacy"), new Company("Orange", "Telecom"),
        new Company("BostonDynamics", "Robotics"),
        new Company("Tesla", "Transportation") };

@RequestMapping(value = "/companies", method = RequestMethod.GET)
private Map getAllCompanies() {
    Map companyMap = new HashMap<String,String>();
    companyMap.put("companies",  companiesArray);
    return companyMap;

}



}

其中 Company 对象有两个 String 字段,分别是 companyName 和行业。

如何修改它以获得所需格式的 JSON?

【问题讨论】:

    标签: java web-services rest spring-4


    【解决方案1】:

    实际上这是我的错误,代码运行良好。当我使用 Chrome 的 Advanced Rest Client 时,它格式化了我的 JSON 结果。如果您在浏览器上调用 url,它可以正常工作。

    [{"companyName":"Uber","industry":"Transportation"},{"companyName":"CVS","industry":"Pharmacy"},{"companyName":"Orange","industry":"Telecom"},{"companyName":"BostonDynamics","industry":"Robotics"},{"companyName":"Tesla","industry":"Transportation"},{"companyName":"Areva","industry":"Energy"}]
    

    【讨论】:

      【解决方案2】:

      要以格式化的方式返回 JSON,如果您还没有创建任何视图,则必须相应地创建一个视图(比如说 JsonView)。 在你的 XML 中你可以定义它

      <bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" >
      
          <property name="prefixJson" value="false" />
      
          <property name="objectMapper"  ref="jacksonObjectMapper" />
      
          <property name="renderedAttributes">
      
              <set>            
      
                  <value>"Json-Value"</value>               
      
              </set>
      
          </property>     
      
      </bean>
      

      【讨论】:

        猜你喜欢
        • 2012-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多