在 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 数据

jQuery将获取到的多个值,组成数组

如何用JavaScript替换数组中间隔多个参数

java 使用Android中的Post和Header参数一次上传多个文件

使用Perl中的单个命令将元素添加到多个数组