2016-12-28 67 views
0

我发现了很多这个异常的答案,但coudl'n找不到一个帮助我的情况。

我想使用GSON来解析JSON。这里是我的代码:

public <T> T getObject(String[] caminho, String[] parametros, Class<T> tipoRetorno) { 
     T resultado = null; 
     WebResource webResource = getWebResource(caminho, parametros); 
     ClientResponse response = getBuilder(webResource).get(ClientResponse.class); 
     if (response.getStatus() == Status.OK.getStatusCode()) { 
      JSONObject json = null; 
      try { 
       json = new JSONObject(response.getEntity(String.class)); 
      } catch (ClientHandlerException | UniformInterfaceException | JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      resultado = new Gson().fromJson(json.toString(), tipoRetorno); 
     } else if (response.getStatus() == Status.NO_CONTENT.getStatusCode()) { 
      String msg = "Getting cross-connections. URI: " + webResource.getURI() + " status: " + response.getStatus() 
        + " " + response.getStatusInfo(); 
      logger.info(msg); 
     } else { 
      String msg = "Error getting cross-connections. URI: " + webResource.getURI() + " returned error : " 
        + response.getStatus() + " status: " + response.getStatusInfo(); 
      logger.info(msg); 
     } 
     return resultado; 
    } 

这里的JSON从 'JSON' 返回:

{"data":[{"thumbs":[{"id":79204454,"updated_at":"2016-12-24T19:54:48.000Z","created_at":"2016-12-24T19:54:48.000Z","filename":"54857bd6-0ccc-48d2-b5c8-8c4483954789_1482608998509","test_case_id":8172839,"url":"https://s3-eu-west-1.amazonaws.com/euthumbtestingbot/54857bd6-0ccc-48d2-b5c8-8c4483954789_1482608998509.jpg","custom":false},{"id":79204455,"updated_at":"2016-12-24T19:54:48.000Z","created_at":"2016-12-24T19:54:48.000Z","filename":"54857bd6-0ccc-48d2-b5c8-8c4483954789_1482609000499","test_case_id":8172839,"url":"https://s3-eu-west-1.amazonaws.com/euthumbtestingbot/54857bd6-0ccc-48d2-b5c8-8c4483954789_1482609000499.jpg","custom":false},{"id":79204456,"updated_at":"2016-12-24T19:54:48.000Z","created_at":"2016-12-24T19:54:48.000Z","filename":"54857bd6-0ccc-48d2-b5c8-8c4483954789_1482609001762","test_case_id":8172839,"url":"https://s3-eu-west-1.amazonaws.com/euthumbtestingbot/54857bd6-0ccc-48d2-b5c8-8c4483954789_1482609001762.jpg","custom":false}...} 

而 'tipoRetorno' 是类br.usp.icmc.testingbot.beans.AgrupamentoTestes:

package br.usp.icmc.testingbot.beans; 

import java.util.List; 

public class AgrupamentoTestes { 

    private List<Teste> data; 
    private Meta meta; 

    public List<Teste> getData() { 
     return data; 
    } 

    public void setData(List<Teste> data) { 
     this.data = data; 
    } 

    public Meta getMeta() { 
     return meta; 
    } 

    public void setMeta(Meta meta) { 
     this.meta = meta; 
    } 

} 

我得到这个异常:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 18101 path $.data[0].groups[0] 

为什么Gson不能正确地将我的JSON文本转换为我的POJO类型?

回答

1

如果将字符串粘贴到文本编辑器中,您将能够在底部看到行号和列号,并找到错误所在的列18101。

+0

你好,丹,我用'......'的标志不要太长。 – ricardoramos

+0

我得到了用于调试eclipse的JSON以及调试缩写JSON以及 – ricardoramos

相关问题