【问题标题】:Parsing String Array into Arraylist in Java在 Java 中将字符串数组解析为 Arraylist
【发布时间】:2013-01-03 20:38:12
【问题描述】:

我正在从我的 Java 应用程序调用 RESTful Api,它为我提供以下格式的结果:

["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() 作为参数并返回一个 Arraylist。

附:我在一个字符串对象中有响应。

P.P.S.标题可能会产生误导,因为我不知道该怎么称呼它。

在期待中感谢。

【问题讨论】:

  • 很高兴知道我为什么投了反对票?我以后会尽量避免这种情况。

标签: java string rest arraylist


【解决方案1】:

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

【讨论】:

  • @Umayr:我已经添加了手册的链接;那里有一些例子。
【解决方案2】:

在 java.util.Arrays 中掠夺。

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

【讨论】:

  • 它也适用于“["Item1", "Item2", "Item3"]" 吗?因为我有一个字符串对象的所有结果。我添加了我的代码,这可能有助于详细说明我的目标。
  • 不,但是您可以将单个字符串转换为字符串 []。看一下 String 类中的 .split() 方法。我相信,如果没有在方法中传递任何参数,将根据“空格”字符吐出一个字符串,因此每个项目都是数组中它们自己的索引。由于字符串是用 JSON 语法格式化的,你可以尝试使用 regex、StringTokenizer,或者搜索 apache-commons 或 guava 来寻找可以为你处理拆分的实用程序,或者尝试查看 JSON 类以查看如果可以干净地解析出文本。
猜你喜欢
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多