【问题标题】:Store JSON object as a string and print each value in java将 JSON 对象存储为字符串并在 java 中打印每个值
【发布时间】:2019-02-09 17:25:57
【问题描述】:

我有一个 JSON 对象 {"name":["123-abc","234-bca","567-yuio"]} 长度未知。我需要将其存储为字符串并拆分逗号并迭代以仅打印值,即应首先打印 123-abc 然后打印 234-bca 等。 -> 输入:{"name":["123-abc","234-bca","567-yuio"]} -> 输出:123-abc 234-bca 567-yuio

请帮助我,因为我是编码新手。谢谢你

【问题讨论】:

  • 您是编码新手,这很好,但您至少应该尽可能地尝试发布代码。如果您遇到具体问题,我们很乐意为您提供帮助。
  • 你有一个“列表......长度未知”是什么意思?所有列表的长度都由它们的size 方法给出。另外,为什么要将它映射到String,然后再映射到String[] 来打印它?您可以简单地遍历列表并打印其元素。
  • 我已经编辑了我的问题,请看一下
  • 您确定需要“将其存储为字符串并拆分逗号”吗?像我一样,你只需要解析 JSON 并打印出字符串数组的内容。

标签: java string list for-loop


【解决方案1】:

你可以试试这个:

JSONObject json = (JSONObject) object;
String input = json.get("name");
//String input = "\"123-abc\",\"234-bca\",\"567-yuio\"";
String[] strArray = input.split(",");
for (String string : strArray)
    System.out.println(string.replace("\"", ""));

这里的对象是您存储 JSON 对象的位置。

【讨论】:

    【解决方案2】:

    首先,您必须在逗号处拆分字符串,并且您必须遍历拆分列表,例如使用一个for循环:

    for (String val : input.substring(1, input.length() - 1).split(",")) {
        System.out.println(val.replace("\"", ""));
    }
    

    【讨论】:

      【解决方案3】:

      您不需要将其存储为字符串,实际上您可以从 JSON 对象中提取该数组并对其进行迭代。

      JSON obj = new JSONObject(); //Get/store your data however you'd like. I will call it obj
      String[] name  = obj.get( "name" );
      for (int i = 0; i < name.length; i++) { //Loop through your array and output each part
          System.out.println( name[ i ] );
      }
      

      如果您需要将obj 转换为字符串,可以使用.toString() 函数。但是上面应该是输出该数据的最简单方法。

      【讨论】:

      • @Sudhanvac 我提供了一个新答案。如果您出于某种原因需要将其存储为字符串,请告诉我,但这将是您正在寻找的最简单的方法。
      猜你喜欢
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 2011-08-09
      • 2017-04-13
      相关资源
      最近更新 更多