sql >> Database teknologi >  >> RDS >> Mysql

Konverter objekt, der indeholder gentagne felter, til JSON

Du kan bruge Googles Gson i dette tilfælde:

public String getJSONFromResultSet(ResultSet rs, String key) {
    Map json = new HashMap();
    List list = new ArrayList();
    if (rs != null) {
        try {
            ResultSetMetaData mData = rs.getMetaData();
            while (rs.next()) {
                Map<String, Object> columns = new HashMap<String, Object>();
                for (int columnIndex = 1; columnIndex <= mData.getColumnCount(); columnIndex++) {
                    if (rs.getString(mData.getColumnName(columnIndex)) != null) {
                        columns.put(mData.getColumnLabel(columnIndex),
                                rs.getString(mData.getColumnName(columnIndex)));
                    } else {
                        columns.put(mData.getColumnLabel(columnIndex), "");
                    }
                }
                list.add(columns);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        json.put(key, list);
    }
    return new Gson().toJson(json);
}

Opdatering: Du kan kalde getJSONFromResultSet metode som nedenfor :

Connection con = DBConnectionClass.myConnection();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM Customer");
      //as an example consider a table named Customer in your DB.
        ResultSet rs = ps.executeQuery();
        System.out.println(getJSONFromResultSet(rs, "customer"));


  1. SQL how-grupper efter regnskabskvartal og år med et datofelt

  2. Forskellen mellem multi-sætning tabel-værdisatte funktioner og inline tabel-værdi-funktioner i SQL Server

  3. Sådan fjerner du dublerede kolonner fra join i SQL

  4. Valg af en enkelt række i MySQL