Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java从SQL结果集正确创建JSON_Java_Json_Sqlresultsetmapping - Fatal编程技术网

使用Java从SQL结果集正确创建JSON

使用Java从SQL结果集正确创建JSON,java,json,sqlresultsetmapping,Java,Json,Sqlresultsetmapping,我有一张桌子 Country State USA Texas USA Alasca India Delhi India Bombay India Madras Russia Mosco Russia Petersberg Germany Berlin China Beijing China Tibet

我有一张桌子

Country       State

 USA           Texas
 USA           Alasca
 India         Delhi
 India         Bombay
 India         Madras
 Russia        Mosco
 Russia        Petersberg
 Germany       Berlin
 China         Beijing
 China         Tibet
 Turkey        Antioch
我需要在两个选择框中显示这些项目, 国家和州。当从国家选择框中选择美国时,德克萨斯州和阿拉斯加州应显示在州选择框中。 所以我需要创建一个Json对象作为

 [{Country:USA, State:{{statename:Texas},{statename:Alasca}}},
 {Country:India, State:{{statename:Delhi}, {statename:Bombay}, {statename:Madras}}},
  {Country:Germany, State:{{statename:Berlin}},
{Country:Russia, State:{{statename:Mosco},{statename:Petersberg}}},
{Country:China, State:{{statename:Beijing}, {statename:Tibet}}},
 {Country:turkey, State:{{statename:Antioch}}}
 ]
目前,我使用两个单独的sql分别获取country和state。我使用Java类 国家作为

public class Country implements Serializable {

String country;



public String getCountry() {
    return country;
}


public void setCountry(String country) {
    this.country = country;
}

 }
我用刀作为工具

  public List<Country>  extractData(ResultSet rs) throws SQLException,
        DataAccessException {
    List<Country> list = new ArrayList<Country>();

    while (rs.next()) {
        Country obj = new Country();
        obj.setCountry(rs.getString(1).trim());

        list.add(obj);
    }

    return list;
   }
同样,我为state创建了类,并编写了提取数据的代码,得到的状态如下

         [ {state:Texas} {state:Alasca}, {state:Delhi}, {state:Bombay},     {state:Madras}, {state:Berlin}, {state:Mosco}, {state:Petersberg} {state:Beijing}, {state:Tibet}, {state:Antioch}]
这可以单独显示在选择框中

但是我需要用下面的方式将对象正确地显示在选择框中

  [{Country:USA, State:{{statename:Texas},{statename:Alasca}}},
 {Country:India, State:{{statename:Delhi}, {statename:Bombay}, {statename:Madras}}},
  {Country:Germany, State:{{statename:Berlin}},
{Country:Russia, State:{{statename:Mosco},{statename:Petersberg}}},
{Country:China, State:{{statename:Beijing}, {statename:Tibet}}},
 {Country:turkey, State:{{statename:Antioch}}}
 ]
我可以创建一个java类

 class CountryState{
    string country;
    List <State> state;

    public String getCountry()
    {
        return country;
    }

    public void setCountry(String country){
        this.country=country;
    }

    public List<State> getState(){
        return state;
    }

    public void setState(List<State> state)
    {
     this.state.add(state);
     }
    }

    class State{
    String statename;

    public String getStatename()
    {
    return statename;
    }

    public void setStatename(String statename){
    this.statename=statename;
    }

我需要知道如何将结果集中的值存储到这样一个对象,并生成所需的JSON对象。

为来自数据库的数据对象创建JAVA pojo,并在该pojo上使用JSON转换器库,就像使用GSON或Jackson一样

提示:您可能必须将查询更改为“按国家分组”,并且可能需要映射到一个国家的状态集合

 class CountryState{
    string country;
    List <State> state;

    public String getCountry()
    {
        return country;
    }

    public void setCountry(String country){
        this.country=country;
    }

    public List<State> getState(){
        return state;
    }

    public void setState(List<State> state)
    {
     this.state.add(state);
     }
    }

    class State{
    String statename;

    public String getStatename()
    {
    return statename;
    }

    public void setStatename(String statename){
    this.statename=statename;
    }