[英]How to convert cursor object to XML or JSON in android
是否有任何庫可用於將Cursor對象轉換為直接XML或JSON。
例如,我們有一個表有兩列id,name。 當我從DB獲取游標對象時。 使用循環游標我想將其轉換為
<XML>
<id>1<id>
<name>xyz</name>
</XML>
提前致謝。
用這個:
JSONArray array = new JSONArray();
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
JSONObject object = new JSONObject();
try {
object.put("id", cursor.getString(0));
object.put("name", cursor.getString(1));
array.put(object);
} catch (JSONException e) {
e.printStackTrace();
}
}
如果你想創建一個XML數據而不是使用它: 鏈接 。 希望它會對你有所幫助。
讓我們說我有一些名為“人”的表,其中包含一些數據
id | 名字| 姓
1 | 約翰| 母鹿
2 | 簡| 工匠
這是我的簡單代碼:
public String getRecords(String selectQuery){
String recordSet = null;
Cursor mCursor = database.rawQuery(selectQuery, null);
String[] colName = mCursor.getColumnNames();
if (mCursor != null) {
recordSet = "{";
mCursor.moveToFirst();
do{
StringBuilder sb = new StringBuilder();
int columnsQty = mCursor.getColumnCount();
for(int idx=0; idx<columnsQty; ++idx){
sb.append(mCursor.getString(idx));
if(idx<columnsQty-1){
sb.append(";");
}
}
if(mCursor.getPosition()>0){
recordSet +=",";
}
String row = formatRecords(colName, sb.toString());
recordSet+= "\""+mCursor.getPosition()+"\":["+row+"]";
}while(mCursor.moveToNext());
recordSet += "}";
return recordSet;
}
}
public String formatRecords(String[] colname, String rowData){
String formatedData = null;
String[] data = rowData.split(";");
int colCount = colname.length;
if(rowData !=null){
formatedData = "{";
for(int col=0; col<colCount; col++){
if(col>0){
formatedData += ", ";
}
formatedData += "\""+colname[col]+"\":\""+data[col]+"\"";
}
formatedData += "}";
}
Log.i(tag, formatedData);
return formatedData
然后我會用它作為
String data = getRecords("SELECT * FROM persons");
回報將如下:
{"0":[{"id":"1","name":"john","lastname":"Doe"}],"1":[{"id":"2","name":"jane","lastname":"Smith"}]}
無論如何,我將返回類型作為字符串用於通用目的。 :) 謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.