我有一个目标清单-
List<Object> sample = new ArrayList<Object>();
它包含以下值-
[This is an apple., Ram is a boy., What is your name?].
我想像这样修改它-
[{ "q": "This is an apple." }, { "q": "Ram is a boy" }, { "q": "What is your name?" }]
该怎么做呢?
P.S -我对Java很陌生。谢谢你提前帮忙。
发布于 2017-09-25 22:12:22
您可以通过创建JSONObject
列表来做到这一点,如下所示:
List<JSONObject> yourList = new ArrayList<JSONObject>();
for(Object obj: sample) {
JSONObject jsonObj = new JSONObject();
jsonObj.put("q",(String)obj);
yourList.add(jsonObj);
}
上面的代码将创建一个名为yourList
的新列表,其中包含所需的数据格式。
发布于 2017-09-25 22:11:10
您可以将自定义模型用作:
class CustomObject {
String q;
...getters, setters etc
}
并进一步使用它作为
List<CustomObject> = new ArrayList<CustomObject>();
发布于 2017-09-25 22:34:38
如果您使用的是jdk8或更高版本,请参见以下内容:
import java.util.*;
import java.util.stream.*;
public class HelloWorld{
public static void main(String []args){
List<String> sample = new ArrayList<String>(Arrays.asList("This is an apple.", "Ram is a boy.", "What is your name?"));
System.out.println(sample);
List<Map<String,String>> transformed = sample.stream()
.map(p -> {Map<String,String> m = new HashMap<String,String>(); m.put("q",p); return m;})
.collect(Collectors.toList());
System.out.println(transformed);
}
}
编辑:而不是List<Map<String,String>>
转换,您也可以使用Map.Entry<String,String>
,以及它只是您想要在您的列表中的键值对。
https://stackoverflow.com/questions/46418928
复制