在 android [JAVA] 中的多个 Arraylist 中添加 JSON 数组
Posted
技术标签:
【中文标题】在 android [JAVA] 中的多个 Arraylist 中添加 JSON 数组【英文标题】:Add JSONarrays in multiple Arraylists in anddroid [JAVA] 【发布时间】:2021-09-14 22:19:21 【问题描述】:我想在多个数组列表中添加特定的 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]
【问题讨论】:
你应该如何获得robotArray以及你的输出来自哪里 我用更多代码编辑了我的问题 你能显示JSONArray robotArray = data.getJSONArray(AppConfig.robotAnswer);
的内容是什么吗?我觉得它是平的。
JSONArray robotArray = data.getJSONArray("robotAnswer");你可以检查JSON结构,它的robotAnswer数组列表
你想要这样吗? [ [Hello. I am Robot, Hi., How are you] , [I am well, Im doing fine] ]
【参考方案1】:
您的代码应与此代码下方类似。在 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);
【讨论】:
非常感谢..我在您的代码中稍作更改以将字符串转换为 arraylist 现在它工作正常... :) 不客气。 :) 如果有帮助,请给我点赞^_^以上是关于在 android [JAVA] 中的多个 Arraylist 中添加 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何使用json中提供的多个联系人数据在java中的android中添加新的电话联系人
如何在 Android Studio Java 中将数组上传到 Firestore 数据