如何将数据格式化为特定的JSON格式

如何将数据格式化为特定的JSON格式,json,hashtable,gson,Json,Hashtable,Gson,这里需要一些逻辑方面的帮助——我正在尝试以一种特定的方式(父子关系/树格式)格式化数据,并将其转换为json(我正在使用gson)。但我似乎不能把它弄对。下面是我能制作的最接近的格式,下面是我想要输出的格式。这需要作为哈希表返回 我遇到的一个问题是在“children”后面加上[]括号。括号位于第一个“children”之后,但稍后不会显示。我猜是因为[]括号只在我使用HashSet时出现。所以,也许将hashset放在hashset中可以解决这个问题 我的代码如下: public class

这里需要一些逻辑方面的帮助——我正在尝试以一种特定的方式(父子关系/树格式)格式化数据,并将其转换为json(我正在使用gson)。但我似乎不能把它弄对。下面是我能制作的最接近的格式,下面是我想要输出的格式。这需要作为哈希表返回

我遇到的一个问题是在“children”后面加上[]括号。括号位于第一个“children”之后,但稍后不会显示。我猜是因为[]括号只在我使用HashSet时出现。所以,也许将hashset放在hashset中可以解决这个问题


我的代码如下:

public class DendrogramPlaySheet extends BrowserPlaySheet {
public Hashtable processQueryData() {
          HashSet food = new HashSet();

          String[] var = wrapper.getVariables();

          for (int i=0; i<list.size(); i++){
                 LinkedHashMap foodType = new LinkedHashMap();
                 LinkedHashMap foodItem = new LinkedHashMap();
                 LinkedHashMap foodFlavor = new LinkedHashMap();

                 //this is a table of data that we get from a query
                 Object[] listElement = list.get(i);

                 //taking columns and putting them into the hashmap
                 foodType.put("name", listElement[0]);
                 foodItem.put("name", listElement[1]);
                 foodFlavor.put("name", listElement[2]);

                 foodItem.put("children", foodFlavor);
                 foodType.put("children", foodItem);

                 food.add(foodType);
          }

          Hashtable allHash = new Hashtable();

          allHash.put("name", "Food");
          allHash.put("children", food);
          return allHash;
   }

我想要输出的内容:

{
  "name":"Food",
  "children":[
  {
     "name":"Italian",
     "children":[
     {
        "name":"Pizza",
        "children":[
           {"name":"Pepperoni"},
           {"name":"Cheese"},
     ]
     },
     {
        "name":"Cannoli",
        "children":[
           {"name":"Plain"},
     ]
     },
     {
        "name":"Pasta",
        "children":[
           {"name":"Pesto"},
     ]
     },
     ]
  },
  {
     "name":"American",
     "children":[
     {
        "name":"Hamburgers",
        "children":[
           {"name":"Plain"},
           ]
     },
     ]
  },
  {
     "name":"Mexican",
     "children":[
     {
        "name":"Burritos",
        "children":[
           {"name":"Beef"},
     ]
     },
     ]
  }
]

}我想你想要这样的东西

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.gson.Gson;

public class DendrogramPlaySheet {
    public static void main(String[] args){
        Map m = new HashMap();
        m.put("name", "food");

        Map m3 = new HashMap();
        m3.put("name", "peperoni");

        Map m4 = new HashMap();
        m4.put("name", "cheese");

        List list2 = new ArrayList();
        list2.add(m3);
        list2.add(m4);

        Map m2 = new HashMap();
        m2.put("name", "pizza");
        m2.put("children", list2);

        List list = new ArrayList();
        list.add(m2);

        m.put("children", list);

        Gson gson = new Gson();
        System.out.println(gson.toJson(m));    
    }

}
产生

{
   "name":"food",
   "children":[
      {
         "name":"pizza",
         "children":[
            {
               "name":"peperoni"
            },
            {
               "name":"cheese"
            }
         ]
      }
   ]
}
您可以看到,“[”是JSON列表/数组的开头

{
   "name":"food",
   "children":[
      {
         "name":"pizza",
         "children":[
            {
               "name":"peperoni"
            },
            {
               "name":"cheese"
            }
         ]
      }
   ]
}