android游标到JSONArray
我怎样才能将游标“转换”为JSONArray?android游标到JSONArray
我的光标为3columns(_id,姓名,出生年月)
我已经搜查,但我不能没有找到任何的例子
回答:
不能直接将光标的内容到一个JSONObject ,但你可以用一些逻辑来做到这一点。
为例如:检索来自光标的字符串,形成下面的JSON格式的字符串,并用它来制作一个JSON对象:
JSONObject jFromCursor=new JSONObject(string_in_JSON_format); 回答:
private String cursorToString(Cursor crs) {     JSONArray arr = new JSONArray(); 
    crs.moveToFirst(); 
    while (!crs.isAfterLast()) { 
     int nColumns = crs.getColumnCount(); 
     JSONObject row = new JSONObject(); 
     for (int i = 0 ; i < nColumns ; i++) { 
      String colName = crs.getColumnName(i); 
      if (colName != null) { 
       String val = ""; 
       try { 
        switch (crs.getType(i)) { 
        case Cursor.FIELD_TYPE_BLOB : row.put(colName, crs.getBlob(i).toString()); break; 
        case Cursor.FIELD_TYPE_FLOAT : row.put(colName, crs.getDouble(i))   ; break; 
        case Cursor.FIELD_TYPE_INTEGER: row.put(colName, crs.getLong(i))   ; break; 
        case Cursor.FIELD_TYPE_NULL : row.put(colName, null)      ; break; 
        case Cursor.FIELD_TYPE_STRING : row.put(colName, crs.getString(i))   ; break; 
        } 
       } catch (JSONException e) { 
       } 
      } 
     } 
     arr.put(row); 
     if (!crs.moveToNext()) 
      break; 
    } 
    crs.close(); // close the cursor 
    return arr.toString(); 
} 
回答:
光标到JSONArray
public JSONArray cur2Json(Cursor cursor) {     JSONArray resultSet = new JSONArray(); 
    cursor.moveToFirst(); 
    while (cursor.isAfterLast() == false) { 
     int totalColumn = cursor.getColumnCount(); 
     JSONObject rowObject = new JSONObject(); 
     for (int i = 0; i < totalColumn; i++) { 
      if (cursor.getColumnName(i) != null) { 
       try { 
        rowObject.put(cursor.getColumnName(i), 
          cursor.getString(i)); 
       } catch (Exception e) { 
        Log.d(TAG, e.getMessage()); 
       } 
      } 
     } 
     resultSet.put(rowObject); 
     cursor.moveToNext(); 
    } 
    cursor.close(); 
    return resultSet; 
} 
以上是 android游标到JSONArray 的全部内容, 来源链接: utcz.com/qa/259905.html








