net.minidev.json.parser.ParseException:意外的令牌

时间:2018-09-28 16:16:24

标签: json rest api jersey

在泽西岛,我试图使用过滤器来获取请求和响应信息,然后将它们发送到队列中。但是我遇到了以下错误。

net.minidev.json.parser.ParseException: Unexpected token 
com.api.core.ApiArrayResponse@66e6f184 at position 55.

可以获取信息并转换为JSON数据的过滤器

public void filter(ContainerRequestContext requestContext, 
ContainerResponseContext responseContext) {

System.out.println("filter start " + 
requestContext.getUriInfo().getPath());
   JSONObject jsonObject = new JSONObject();
   Map headers = requestContext.getHeaders();
   jsonObject.put("PathInfo", request.getPathInfo());
   jsonObject.put("HostName", request.getRemoteUser());
   jsonObject.put("requestHeader", headers);


   String res = responseContext.getEntity().toString();

   try {
       jsonObject.put("responseBody", JSONValue.parseStrict(res));


   } catch (net.minidev.json.parser.ParseException e) {

     e.printStackTrace();
  }

   if (requestContext.getUriInfo().getPath().equals("test")) {
       AuditQueue.queue.add(jsonObject.toJSONString());
   }
 }

还有ApiArrayResponse类

public class ApiArrayResponse<T> implements IApiResponse {

@HeaderParam(AddRequestIdFilter.API_TRACKING_ID)
public String request_id;


@XmlElement
public Collection<T> data;


@XmlElement
public PageInfo paging;

public ApiArrayResponse() { 
}


public ApiArrayResponse(Collection<T> data) {
  this.data = data;
}

public ApiArrayResponse(Collection<T> data, PageInfo pi) {
  this.data = data;
  this.paging = pi;
}

@Override
public void setRequestId(String requestId) {
  request_id = requestId;  
   }
}

谁能帮助我找出我的代码中的问题以及如何解决?谢谢

0 个答案:

没有答案