2013-01-03 34 views
0

我打电话从我的Java应用程序一个RESTful API,它为我提供了导致以下格式:解析字符串数组到ArrayList中Java中

["Item1", "Item2" , "Item3"] 

如何解析它变成ArrayList对象?

代码:

private String getResponseString(URI URL) { 

    HttpClient client = new DefaultHttpClient(); 
    HttpContext context = new BasicHttpContext(); 
    HttpGet get = new HttpGet(); 
    get.setURI(URL); 

    try { 
     HttpResponse response = client.execute(get, context); 
     return getASCIIContentFromEntity(response.getEntity()); 

    } catch (ClientProtocolException e) { 
     Log.e(Static.DebugTag, e.getMessage()); 
     return null; 
    } catch (IOException e) { 
     Log.e(Static.DebugTag, e.getMessage()); 
     return null; 
    } 

} 

private String getASCIIContentFromEntity(HttpEntity entity) 
     throws IllegalStateException, IOException { 
    InputStream in = entity.getContent(); 
    StringBuffer out = new StringBuffer(); 
    int n = 1; 
    while (n > 0) { 
     byte[] b = new byte[4096]; 
     n = in.read(b); 
     if (n > 0) 
      out.append(new String(b, 0, n)); 
    } 
    return out.toString(); 
} 

现在我不想再拍函数,它的返回字符串形式getASCIIContentFromEntity()作为PARAM并返回一个ArrayList。

P.S.我有一个字符串对象的响应。

P.P.S.标题可能会引起误解,因为我不知道该怎么称呼它。

感谢预期。

+0

很奇怪为什么我得到一个负面投票?我会尽量避免在将来。 – Umayr

回答

2

由于该字符串似乎包含有效的JSON,因此可以使用JSON解析器(例如Gson)解析字符串。请参阅手册中的Arrays ExamplesCollections Examples

+0

你能提供一个代码示例吗? – Umayr

+0

@Umayr:我添加了手册的链接;那里有一些例子。 – NPE

+0

这对我有用。 – Umayr

1

在java.util.Arrays处获得战利品。

List<String> list = Arrays.asList(["Item1", "Item2", "Item3"]); 
+0

它是否适用于“[”Item1“,”Item2“,”Item3“]”?因为我有一个字符串对象的所有结果。我添加了我的代码,这可能有助于阐述我的目标。 – Umayr

+0

不,但是你可以将一个字符串变成一个String []。看看String类中的.split()方法。我相信没有任何参数传递的方法将吐出一个字符串基于'空间'字符,因此每个项目将是他们自己的数组中的索引。由于字符串是以JSON语法格式化的,因此您可以尝试使用正则表达式,StringTokenizer或者搜索apache-commons或guava来获得可以处理您的分割或cop-out的实用程序,并尝试查看JSON类以查看如果可以干净地解析出文字。 – Dan