簡體   English   中英

如何在android中將游標對象轉換為XML或JSON

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM