【问题标题】:Return Json from HashMap <String, Object> in Rest API?从 Rest API 中的 HashMap <String, Object> 返回 Json?
【发布时间】:2018-08-11 01:01:50
【问题描述】:

我是 java 新手,我正在尝试制作一个 get Rest API。我无法将结果转换为 Json 的问题。这是代码的一部分:

@Path("/")
public class Search{
	@GET
    @Path("/result")
    @Produces({MediaType.APPLICATION_JSON })
    public Response getAllResults(){
				
        Map<String, DashboardSpaceResult> map = new HashMap<String, DashboardSpaceResult>();
        Map<String, List<Page>> objectsBySpace = SPGSearchUtils.searchAllPagesForLabels(MetaData.GLOSSARY_LETTER, null);   	
	    
	    for (String spaceKey : objectsBySpace.keySet()) {
	    	
	    	DashboardSpaceResult glossarySpaceResult = new DashboardSpaceResult();
            Page parentPage = objectsBySpace.get(spaceKey).get(0).getParent();
	    	
            glossarySpaceResult.setHome(parentPage);
            glossarySpaceResult.setSpace(objectsBySpace.get(spaceKey).get(0).getSpace());
            
            map.put(spaceKey, glossarySpaceResult);
		}
	    JSONObject jsonObject = new JSONObject(map);
	    return Response.ok(jsonObject).build();

【问题讨论】:

  • 错误是什么?
  • jsonobject : true jsonarray : false

标签: java json rest hashmap


【解决方案1】:

试试

return Response.ok(map).build();

它应该自动使用provider来转换成json

【讨论】:

  • 我收到了这个错误:org.codehaus.jackson.map.JsonMappingException: No serializer found for class com.samer.api.model.dto.DashboardSpaceResult and no properties found to create BeanSerializer (以避免异常, 在 org.codehaus.jackson.map.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:52) 处禁用 SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) (通过引用链:java.util.HashMap["SS"])跨度>
  • 我将类属性从私有更改为公共,并且可以正常工作
猜你喜欢
  • 2018-05-20
  • 2020-03-13
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
  • 2014-07-20
  • 1970-01-01
相关资源
最近更新 更多