Java 获取一个对象数组并将其转换为字符串数组?

Java 获取一个对象数组并将其转换为字符串数组?,java,android,arrays,Java,Android,Arrays,我试图将对象数组转换为for循环中的字符串数组 我正在从对象中提取一个属性循环中的title我有几个title字符串,现在我想将其传递到一个新数组中 JSONArray shots = response.getJSONArray("shots"); for (int i=0; i < shots.length(); i++) { // play with data JSONObject post = shots.getJSONObject(i); String t

我试图将对象数组转换为for循环中的字符串数组

我正在从对象中提取一个属性循环中的
title
我有几个
title
字符串,现在我想将其传递到一个新数组中

JSONArray shots = response.getJSONArray("shots");
for (int i=0; i < shots.length(); i++) {

    // play with data
    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");

    // turn title into an array of strings??

}
JSONArray shots=response.getJSONArray(“shots”);
对于(int i=0;i
编辑:

我试过这个

String[] mStrings = new String[15];

JSONArray shots = response.getJSONArray("shots");
for (int i=0; i < shots.length(); i++) {

    // play with data
    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");
    //Log.d("this is my array", "arr: " + title);

    mStrings[i] = title;

}

Log.d("this is my array", "arr: " + mStrings);
String[]mStrings=新字符串[15];
JSONArray shots=response.getJSONArray(“shots”);
对于(int i=0;i

Log.d
的结果是
d/这是我的数组﹕ arr:[Ljava.lang.String;@4294e620

如果我正确理解了您的问题:您想获得一个包含JSON快照中所有标题的数组吗

JSONArray shots = response.getJSONArray("shots");
String titles[] = new String[shots.length()];
for (int i=0; i < shots.length(); i++) {
    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");

    titles[i] = title;
}
如果您正在使用此功能,您甚至可以编写:

JSONArray shots = response.getJSONArray("shots");
String titles[] = shots.stream()
    .map(post -> ((JsonObject) post).getString("title"))
    .toArray(String[]::new);

如果我正确理解了您的问题:您想获得一个包含JSON快照中所有标题的数组吗

JSONArray shots = response.getJSONArray("shots");
String titles[] = new String[shots.length()];
for (int i=0; i < shots.length(); i++) {
    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");

    titles[i] = title;
}
如果您正在使用此功能,您甚至可以编写:

JSONArray shots = response.getJSONArray("shots");
String titles[] = shots.stream()
    .map(post -> ((JsonObject) post).getString("title"))
    .toArray(String[]::new);

实现这一点的最佳方法是创建一个新的
ArrayList
,当您从
JSONObject
解析每个
字符串时,可以将其存储到该列表中

ArrayList<String> stringList = new ArrayList<String>();

JSONArray shots = response.getJSONArray("shots");
for (int i=0; i < shots.length(); i++) {

    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");

    stringList.add(title);

}
ArrayList stringList=新建ArrayList();
JSONArray shots=response.getJSONArray(“shots”);
对于(int i=0;i
实现这一点的最佳方法是创建一个新的
数组列表
,当您从
JSONObject
解析每个
字符串时,可以将其存储到该列表中

ArrayList<String> stringList = new ArrayList<String>();

JSONArray shots = response.getJSONArray("shots");
for (int i=0; i < shots.length(); i++) {

    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");

    stringList.add(title);

}
ArrayList stringList=新建ArrayList();
JSONArray shots=response.getJSONArray(“shots”);
对于(int i=0;i
您的意思是在字符串数组中为每个标题创建一个条目吗

如果是:

JSONArray shots = response.getJSONArray("shots");

List<String> titles = new ArrayList<String>();

for (int i=0; i < shots.length(); i++) {

    // play with data
    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");
    titles.add(title)

    // turn title into an array of strings??

}

String[] titleArr = new String[titles.size()];
titleArr = titles.toArray(titleArr);
JSONArray shots=response.getJSONArray(“shots”);
列表标题=新的ArrayList();
对于(int i=0;i

如果这不是您想要的,请在问题中提供更多细节。

您的意思是在字符串数组中为每个标题创建一个条目吗

如果是:

JSONArray shots = response.getJSONArray("shots");

List<String> titles = new ArrayList<String>();

for (int i=0; i < shots.length(); i++) {

    // play with data
    JSONObject post = shots.getJSONObject(i);
    String title = post.getString("title");
    titles.add(title)

    // turn title into an array of strings??

}

String[] titleArr = new String[titles.size()];
titleArr = titles.toArray(titleArr);
JSONArray shots=response.getJSONArray(“shots”);
列表标题=新的ArrayList();
对于(int i=0;i
如果这不是你想要的,请在问题中提供更多细节。

使用

Log.d("this is my array", "arr: " + Arrays.toString(mStrings));
代替

Log.d("this is my array", "arr: " + mStrings);
使用

代替

Log.d("this is my array", "arr: " + mStrings);

看起来你已经这样做了。你已经将每个标题存储为字符串数组的一个元素。我不明白这里有什么?它基本上没有在日志中显示我。所以我是unsureThanks的家伙。我想我明白了。看起来你已经这样做了。你已经将每个标题存储为字符串数组的一个元素。我不明白这里有什么?它无法解释我基本上是在日志中看到我的。所以我是Unserthanks的家伙。我想我明白了。是的,但是如果我想在循环之外访问数组呢?我可以调用stringList吗?最终我想把它传递到Adapterys中,因为stringList在循环之外实例化,你将能够在更大的范围内使用它。一旦你完成了对它的解析h每个JSONObject您都将用字符串填充列表,并且可以简单地将stringList对象传递给您的适配器。是的,但是如果我想访问循环外部的数组呢?我可以调用stringList吗?最终我想将它传递到adapterYes,因为stringList在循环外部实例化,您可以在l中使用它更大的作用域。完成对每个JSONObject的解析后,您将用字符串填充列表,只需将stringList对象传递给适配器即可。好的,我正在尝试创建一个数组传递给适配器,这样我就可以拥有一个listView好的,我正在尝试创建一个数组传递给适配器,这样我就可以拥有一个listView