java - 在 android [JAVA] 中的多个 Arraylist 中添加 JSONarrays
问题描述
我想在多个数组列表中添加特定的 JSON 数组。在下面的 JSON 结构中,我只想在多个数组列表中添加 robotsAnswer 数组:
"boot": [
{
"where": "STARTS",
"userSuggestion": [
"hey",
"hello"
],
"robotAnswer": [
"Hello. I am Robot",
"Hi",
"How are you?"
]
},
{
"where": "CONTAINS",
"userSuggestion": [
"how are you"
],
"robotAnswer": [
"I am well",
"Im doing fine"
]
}
]
例如我想得到这样的arraylist结果:
[ [Hello. I am Robot, Hi., How are you] , [I am well, Im doing fine] ]
我试过这段代码:
private final ArrayList<List<String>> robotText = new ArrayList<>();
private final ArrayList<ArrayList<List<String>>> robotAnswer = new ArrayList<>
(Collections.singleton(robotText));
for (int j = 0; j < arrayBoot.length(); j++) {
JSONObject data = arrayBoot.getJSONObject(j);
String where = data.getString("where");
JSONArray answerArray = data.getJSONArray("userSuggestion");
JSONArray robotArray = data.getJSONArray("robotAnswer");
......///
int arrSize = robotArray.length();
for (int i = 0; i < arrSize; ++i) {
String word = robotArray.getString(i);
List<String> words = new ArrayList<>();
words.add(word);
robotText.add(words);
robotAnswer.add(robotText);
}
通过使用此代码,我得到了我不想要的结果:
[[Hello. I am Robot], [Hi], [How are you?], [im well], [im doing fine]
解决方案
您的代码应该如下所示。在 robotsAnswer 列表中,您将获得您的愿望清单。
private final ArrayList<List<String>> robotText = new ArrayList<>();
private final ArrayList<String> robotAnswer = new ArrayList<>
(Collections.singleton(robotText));
for (int j = 0; j < arrayBoot.length(); j++) {
JSONObject data = arrayBoot.getJSONObject(j);
String where = data.getString("where");
JSONArray answerArray = data.getJSONArray("userSuggestion");
JSONArray robotArray = data.getJSONArray("robotAnswer");
String sentence = "";
int arrSize = robotArray.length();
for (int i = 0; i < arrSize; ++i) {
String word = robotArray.getString(i);
sentence = sentence + word+",";
}
robotAnswer.add(sentence);
}
推荐阅读
- reactjs - 如何连接两个变量的代码
- f# - 寓言 - 无法获取泛型参数的类型信息,请内联或注入类型解析器
- angular - Angular:无法绑定到“ngModel”,因为它不是“输入”的已知属性(不是重复)
- javascript - 计算元素在数组中出现的次数
- laravel - 站点无法验证用户身份
- java - 在按钮上临时设置背景颜色
- r - 用于索引构建的 PCA。标志的问题
- python - 如何使用 Bokeh 使用 HoverTool 创建多线图?
- c# - BotFramework 中的随机超时/TaskCanceledException
- javascript - 更新集合中深层嵌套的对象