【问题标题】:How to convert cursor object to XML or JSON in android如何在android中将光标对象转换为XML或JSON
【发布时间】:2014-05-03 03:59:11
【问题描述】:

是否有任何库可用于将 Cursor 对象转换为直接 XML 或 JSON 。

例如,我们有一个包含两列 id,name 的表。当我从数据库中获取游标对象时。没有循环光标,我想将其转换为

<XML>
<id>1<id>
<name>xyz</name>
</XML>

提前致谢。

【问题讨论】:

  • 你要xml还是json??
  • 然后查看我提供的链接。

标签: android xml json sqlite


【解决方案1】:

假设我有一个名为“persons”的表,其中包含一些数据

标识 |姓名 |姓氏

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"}]}

无论如何,出于一般目的,我将返回类型设置为 String。 :) 谢谢。

【讨论】:

  • 这是一个JSON格式的字符串返回。但如果你想打印 xml。您可以使用相同的方法应用 XML 格式。有关制作 XML 的详细信息here is the link
【解决方案2】:

使用这个:

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 数据,请使用:Link。希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    相关资源
    最近更新 更多