当前位置: 首页 > 面试题库 >

如何解析JSON并将其值转换为Array?

乐正浩宕
2023-03-14
问题内容
public static void parseProfilesJson(String the_json){
       try {
            JSONObject myjson = new JSONObject(the_json);

            JSONArray nameArray = myjson.names();
            JSONArray valArray = myjson.toJSONArray(nameArray);
            for(int i=0;i<valArray.length();i++)
            {
                String p = nameArray.getString(i) + "," + ValArray.getString(i);
                Log.i("p",p);
            }

        } catch (JSONException e) {
                e.printStackTrace();
        }
    }

如您所见,此示例代码将打印出JSON 的 KEY ,然后打印JSONS的 VALUES

如果json是这样的,它将打印 配置文件,约翰

{'profiles':'john'}

这很酷。很好,因为我可以使用这些变量。但是,如果JSON是这样的:

{'profiles': [{'name':'john', 'age': 44}, {'name':'Alex','age':11}]}

在这种情况下,整个值将是数组。基本上,我只想获取该数组(在本例中为“值”)…并将其转换为JAVA可以使用的实际数组。我怎样才能做到这一点?谢谢。


问题答案:

例如:

{'profiles': [{'name':'john', 'age': 44}, {'name':'Alex','age':11}]}

您将必须执行以下操作:

JSONObject myjson = new JSONObject(the_json);
JSONArray the_json_array = myjson.getJSONArray("profiles");

这将返回数组对象。

然后迭代如下:

    int size = the_json_array.length();
    ArrayList<JSONObject> arrays = new ArrayList<JSONObject>();
    for (int i = 0; i < size; i++) {
        JSONObject another_json_object = the_json_array.getJSONObject(i);
            //Blah blah blah...
            arrays.add(another_json_object);
    }

//Finally
JSONObject[] jsons = new JSONObject[arrays.size()];
arrays.toArray(jsons);

//The end...

您将必须确定数据是否为数组(只需检查charAt(0)[字符开头的字符)。

希望这可以帮助。



 类似资料:
  • 问题内容: 我想播放现在以JSON格式保存的数据。但是我对R非常陌生,对如何处理数据一无所知。您可以在下面看到我设法实现的目标。但首先,我的代码: 我能够得到数据: 尽管输出看起来很原始: 请注意,JSON有点嵌套。我可以使用Python创建表,但是R似乎要复杂得多。 编辑: 我的JSON: 问题答案: 返回一个列表,您可以使用函数来遍历每个元素。将其转换为“表”非常简单(一旦您知道该怎么做!)(

  • 问题内容: 这些是可能的输出格式 如何将它们解析为几秒钟? 由于我不知道可以输入多长时间,因此请假设至少3位数字。 输出将只有一行,因此不需要循环。 问题答案: 使用awk: 运行: 输出: 最后,如果您希望通过管道传递到解析器,则可以执行以下操作:

  • 我正在获取一个json对象,该对象如下所示: 然后,我使用模板文字追加页面上的对象,如下所示 我遇到的问题是,我需要${item.entry}来观察JSON中的html和段落中断。我该怎么做?

  • 我正在使用简单的查询从数据库中检索用户信息。 然后,我尝试获取一个名为isconfired的列(在数据库中表示为位类型列)的值,并将其转换为bool。 然后我得到一个FormatException错误,指出“输入字符串的格式不正确”。 我看到了一个类似的问题,其答案提供了以下代码: 但这不适用于我的案例,因为我不知道isconfired列的索引,也不想知道它。我想使用列名。

  • 问题内容: 如何将JSON字符串简单地转换为C#,最好不使用第三方解析器? 问题答案: 我不确定为什么每个人仍然推荐JSON.NET来反序列化JSON。我写了一篇有关如何将JSON反序列化为C#的博客文章。 简而言之,它是这样的: 确保添加对System.Web.Extensions.dll的引用。 注意: 我通常反序列化为,所以我假设这会起作用。但是,我还没有验证它是否确实如此。

  • 问题内容: 我想从Web服务中检索JSON,然后进行解析。 我走对了吗? 不幸的是,我不知道如何转换为JSONObject。 这是我的JSON(摘录): 问题答案: 您可以将字符串转换为json: