String AdobeAIR:转换sqlite';将结果[object]转换为字符串?

String AdobeAIR:转换sqlite';将结果[object]转换为字符串?,string,apache-flex,sqlite,air,flash-builder,String,Apache Flex,Sqlite,Air,Flash Builder,我目前正在尝试从sqlite检索文本。我看到请求的数据量确实正确,但另一方面,内容的格式似乎不正确。我尝试了一些转换: var data:Array = sqls.getResult().data; var stData:String = String(data[0]); Alert.show(stData); // <--- displays "[object Object]" var-data:Array=sqls.getResult().data; var stData:Str

我目前正在尝试从sqlite检索文本。我看到请求的数据量确实正确,但另一方面,内容的格式似乎不正确。我尝试了一些转换:

var data:Array = sqls.getResult().data;

var stData:String = String(data[0]);

Alert.show(stData); // <--- displays "[object Object]"
var-data:Array=sqls.getResult().data;
var stData:String=String(数据[0]);

警报。显示(stData);// 无论返回哪些行(使用(out))指定列,除非定义了SQLStatement的itemClass属性,否则它将始终返回匿名对象。这就是远程处理与AMF的工作原理

您可以做两件事(取决于项目的复杂性):

  • 指定一个SQLStatement.itemClass-这将使用与列名同名的公共访问器(var或get/set)定义并上传返回结果
  • 如果保留为匿名-列名将附加到对象,在该对象中您可以像定义对象一样迭代该对象
  • 超级基本示例:

    //SQL table schema
    CREATE TABLE accounts (
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      num INTEGER NOT NULL,
      name TEXT NOT NULL,
      last_update DATE
    );
    
    //Define an Account class:
    public class Account {
        public var id:int;
        public var num:int;
        public var name:String;
        public var last_update:Date;
    }
    
    //A statement to execute to get all accounts returned as an array of "Account"
    var statement:SQLStatement = new SQLStatement();
        statement.sqlConnection = myConn;
        statement.itemClass = Account;
        statement.text = 'SELECT * FROM accounts';
        statement.addEventListener(SQLEvent.RESULT, onResults);
        statement.execute();
    
     protected function onResults(event:SQLEvent):void
     {
          var statement:SQLStatement = SQLStatement(event.currentTarget);
          var results:SQLResult = statement.getResult();
          for each (var account:Account in results)
          {
              //do something useful like populate a model, grid, etc...
          }
     }
    
    
     //Anonymous objects would iterate much the same way -when an item class isn't defined
     protected function onResults(event:SQLEvent):void
     {
          var statement:SQLStatement = SQLStatement(event.currentTarget);
          var results:SQLResult = statement.getResult();
          for each (var account:Object in results)
          {
              //our 'Object' will have properties: id, num, name, last_update
              //do something useful like populate a model, grid, etc...
          }
     }
    

    无论返回哪些行(使用(out))指定列,除非定义了SQLStatement的itemClass属性,否则它将始终返回匿名对象。这就是远程处理与AMF的工作原理

    您可以做两件事(取决于项目的复杂性):

  • 指定一个SQLStatement.itemClass-这将使用与列名同名的公共访问器(var或get/set)定义并上传返回结果
  • 如果保留为匿名-列名将附加到对象,在该对象中您可以像定义对象一样迭代该对象
  • 超级基本示例:

    //SQL table schema
    CREATE TABLE accounts (
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      num INTEGER NOT NULL,
      name TEXT NOT NULL,
      last_update DATE
    );
    
    //Define an Account class:
    public class Account {
        public var id:int;
        public var num:int;
        public var name:String;
        public var last_update:Date;
    }
    
    //A statement to execute to get all accounts returned as an array of "Account"
    var statement:SQLStatement = new SQLStatement();
        statement.sqlConnection = myConn;
        statement.itemClass = Account;
        statement.text = 'SELECT * FROM accounts';
        statement.addEventListener(SQLEvent.RESULT, onResults);
        statement.execute();
    
     protected function onResults(event:SQLEvent):void
     {
          var statement:SQLStatement = SQLStatement(event.currentTarget);
          var results:SQLResult = statement.getResult();
          for each (var account:Account in results)
          {
              //do something useful like populate a model, grid, etc...
          }
     }
    
    
     //Anonymous objects would iterate much the same way -when an item class isn't defined
     protected function onResults(event:SQLEvent):void
     {
          var statement:SQLStatement = SQLStatement(event.currentTarget);
          var results:SQLResult = statement.getResult();
          for each (var account:Object in results)
          {
              //our 'Object' will have properties: id, num, name, last_update
              //do something useful like populate a model, grid, etc...
          }
     }
    

    请尝试使用
    Objectutil.toString()将任何类型的对象转换为字符串的函数。

    请尝试使用
    Objectutil.toString()将任何类型的对象转换为字符串的函数。

    [object object object]是object类上toString()方法的结果。这意味着数据数组的每一项都是一个对象;不是一串。但是,您没有向我提供足够的信息来告诉您如何深入到对象中(或强制转换对象)以获取所需的文本数据。我的sqlite数据库只包含包含几列文本(100)的表,而我只需要一列。如果是这样的话,那么我们如何将sqls.getResult()数据转换为我想要的数据呢?我应该寻找什么样的类或方法?文本,而不是文本(100),对不起。我从mysql转换了它。现在我得到了另一个东西:[object]是对象类上toString()方法的结果。这意味着数据数组的每一项都是一个对象;不是一串。但是,您没有向我提供足够的信息来告诉您如何深入到对象中(或强制转换对象)以获取所需的文本数据。我的sqlite数据库只包含包含几列文本(100)的表,而我只需要一列。如果是这样的话,那么我们如何将sqls.getResult()数据转换为我想要的数据呢?我应该寻找什么样的类或方法?文本,而不是文本(100),对不起。我从mysql转换过来的。我现在得到了一些其他东西: