gson 从列表的列表创建json Java

wlwcrazw  于 2022-11-06  发布在  Java
关注(0)|答案(1)|浏览(194)

我有一个列表列表,我想转换为json,列表看起来像:

[Country, Food, Detail, Population, Region, Extension]
[Germany, 1, 2, 3, 4, 5]
[England, 10, 11, 12, 13, 14]
[USA, 19, 20, 21, 22, 23]
[China, 28, 29, 30, 31, 32]
[Italy, 37, 38, 39, 40, 41]
[France, 46, 47, 48, 49, 50]

我想创建一个这样的json

"Germany"{
        "Food": 
         {
           "value": 1
         },
        "Detail":
         {
           "value": 2
         },
        "Population": 
         {
           "value": 3
         },
        "Region": 
         {
          "value": 4
         },
        "Extension": 
         {
          "value": 5
         }
    }
 "Italy"{
        "Food": 
         {
           "value": 10
         },
        "Detail":
         {
           "value": 11
         },
        "Population": 
         {
           "value": 12
         },
        "Region": 
         {
          "value": 13
         },
        "Extension": 
         {
          "value": 14
         }
    }...

我尝试使用gson,但是我无法创建它,当我将其他json添加到最后一个json中时,我遇到了一个问题。我得到了如下结果:

"Germany"{
            "Food": 
            {
             "value": 1
            }
            ...} 
   "Germany"{
            "Food": 
            {
            "value": 10
            }
            "Detail": 
            {
            "value": 11
            }
        ...}
    "Italy"{
            "Food": 
            {
            "value": 10
            }
           "Detail": {
           "value": 11
            }
           ...}

这是我创建json的代码部分。

JsonObject main2=  new JsonObject();
    JsonObject main =  new JsonObject();

  for (int row = 1; row < table.size(); row++) {
        for (int colum = 1; colum < table.get(0).size(); colum++) {
            JsonObject jsObj = new JsonObject();
            jsObj.add("value", new JsonParser().parse(table.get(row).get(colum)));
            main.add(table.get(0).get(colum), jsObj);
        }
        main2.add(table.get(row).get(0),main);
        gson.toJson(main2, writer);

    }

我不知道我做错了什么,如果我写“主”的结果是正确的,但当我写“主2”我有这个问题。有其他的选择,因为我尝试了不同的方式买我没有一个正确的结果:(

0aydgbwb

0aydgbwb1#

在内部for循环的最后一行中,它应该是main2而不是main

相关问题