sql >> Databasteknik >  >> RDS >> Mysql

Konvertera objekt som innehåller upprepade fält till JSON

Du kan använda Googles Gson i det här fallet:

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);
}

Uppdatering: Du kan anropa getJSONFromResultSet metod som nedan :

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. Avbryt lika perioder i slutet av månaden

  2. Finns det något sätt att TRUNCATE de flesta tabeller i ett MySQL-schema?

  3. Android - Visa användarnamn från SQLite-databasen efter inloggning i textView

  4. SQL Server-tabeller:vad är skillnaden mellan @, # och ##?