【问题标题】:JAVA JsonArray to regular multidimensional arrayJAVA JsonArray 到常规多维数组
【发布时间】:2016-01-14 19:01:19
【问题描述】:

所以我有一个方法。

public String getWidgetConfigAsString(List<DashboardColumn> dashboardList) {
        Gson gson = new Gson();
        JsonArray widgetConfigJson = gson.toJsonTree(dashboardList).getAsJsonArray();

        for (int i = 0; i < widgetConfigJson.getAsJsonArray().size(); i++) {
            System.out.println(widgetConfigJson.getAsJsonArray().get(i));
        }

        return widgetConfigAsString;
    }

这个方法返回:

{"widgets":["notary_registry","notary_tasks"]}
{"widgets":["calendar"]}
{"widgets":[]}

这是一个 JSF 仪表板布局,基本上第一行是仪表板的第一列,依此类推。

我想要实现的是,只得到常规的多数组,它会给我这样的输出:

{["notary_registry","notary_tasks"]}
{["calendar"]}
{[]}

【问题讨论】:

  • 返回是指在输出窗口中打印? JSON 是名称-值,因此如果您获得一个项目并打印它,您会期望获得名称-值。尝试使用 widgetConfigJson.getAsJsonArray().get(i).valueToString(),然后您可以根据需要适当添加 {[]}。
  • println() 现在只适合我,要查看输出,我想将输出存储到 String [] [] 并使用 toString();现在什么都没有改变。
  • 那么为什么不分享您尝试用来创建输出的代码呢?您将代码打印共享到标准输出并返回空字符串,因此您会得到响应。分享您的代码,您一定会得到帮助来调整它以符合您的要求。但是首先尝试使用 valueToString 来获取每个单独的值。
  • 是的.. 我尝试了一些“奇怪”的组合,比如将这个 JsonArray 拆分为一维数组.. 我可以得到我需要的输出,用写得很奇怪的代码,但我正在寻找一些高效的,如果有。和.. valueToString() 是给我编译错误。

标签: java arrays json multidimensional-array gson


【解决方案1】:

看起来很丑,但是.. 能胜任,会找到一些东西,看起来足够好用.. :)

for (int i = 0; i < widgetConfigJson.size(); i++) {

            if (widgetConfigJson.get(i).toString().contains("widgets")) {
                int a = widgetConfigJson.get(i).toString().indexOf('[');
                int b = widgetConfigJson.get(i).toString().indexOf(']');

                System.out.println(widgetConfigJson.get(i).toString().substring(a, b + 1));
            }

【讨论】:

  • 好的,所以我在文档中遗漏了,有一个很好的方法可以满足我的需要。public String getWidgetConfigAsString(List&lt;DashboardColumn&gt; dashboardList) { Gson gson = new Gson(); List&lt;List&lt;String&gt;&gt; newList = new ArrayList&lt;&gt;(); for (int i = 0; i &lt; dashboardList.size(); i++) { newList.add(dashboardList.get(i).getWidgets()); } return gson.toJson(newList); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 2015-12-12
  • 2023-03-22
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 2018-10-17
相关资源
最近更新 更多