YUI数据表数据源是否可用于所有有效的JSON对象?

问题描述

| 首先,我应该指出,我已经使用http://jsonlint.com验证了我的JSON对象,并且确实有效。 到目前为止,我正在研究YUI数据表的示例,特别是示例使用的数据源和JSON对象的结构(请参阅http://developer.yahoo.com/yui/examples/datatable /dt_basic.html)。 基本示例使用如下组成的数据源:
YAHOO.example.Data = {
  bookorders: [
    {id:\"po-0167\",date:new Date(1980,2,24),quantity:1,amount:4,title:\"A Book About Nothing\"},{id:\"po-0783\",date:new Date(\"January 3,1983\"),quantity:null,amount:12.12345,title:\"The Meaning of Life\"},{id:\"po-0297\",date:new Date(1978,11,12),quantity:12,amount:1.25,title:\"This Book Was Meant to Be Read Aloud\"},{id:\"po-1482\",date:new Date(\"March 11,1985\"),quantity:6,amount:3.5,title:\"Read Me Twice\"}
  ]
}
而我的JSON对象如下所示:
[
  {
    \"Listing\": {
        \"Name\": \"Jay\",\"Address\": \"Main Street\",\"City\": \"New York\"
    }
  },{
    \"Listing\": {
        \"Name\": \"Thomas\",\"Address\": \"Union Street\",{
    \"Listing\": {
        \"Name\": \"Jason\",\"Address\": \"Square Street\",\"City\": \"Boston\"
    }
  }
]
这是Yahoo的示例如何指定数据源和与其相关的其他几行:
var myDataSource = new YAHOO.util.DataSource(YAHOO.example.Data.bookorders);
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
myDataSource.responseSchema = {
  fields: [\"id\",\"date\",\"quantity\",\"amount\",\"title\"]
};
在我的JSON对象中,每个\“ Listing \”都是YUI DataTable中的一行。我需要在YUI代码中进行哪些修改才能使其与JSON对象一起使用? 谢谢。     

解决方法

上面已经定义了一个对象,该对象具有未命名的对象数组,每个对象由另一个具有成员的对象组成。尽管这可能是有效的JSON,但我认为这与YUI数据表的期望不兼容。这更多是一个人为的或难以理解的挑战。 我无法提供一种使用现有JSON对象的方法。虽然您的JSON有效,恕我直言,但我认为它与YUI数据表不兼容。 我认为您需要一个对象,该对象包含具有成员的对象的命名数组,而不是其他对象。对我来说,现有数据结构中有太多层没有明显目的。 下面的\'Change \'表示更改了YAHOO提供的基本数据表示例。 像这样简单地重组数据,
YAHOO.example.Data = {
  Listing: [
    {
          \"Name\": \"Jay\",\"Address\": \"Main Street\",\"City\": \"New York\"
    },{
          \"Name\": \"Thomas\",\"Address\": \"Union Street\",{
          \"Name\": \"Jason\",\"Address\": \"Square Street\",\"City\": \"Boston\"
    }
  ]
};
将简化您的数据结构并使之工作。我认为,考虑到约束条件,这是最小的更改。 然后更改数据源:
var myDataSource = new YAHOO.util.DataSource(YAHOO.example.Data.Listing);
和列defs
var myColumnDefs = [
      {key:\"Name\"},{key:\"Address\"},{key:\"City\"}
];
最后是响应模式
myDataSource.responseSchema = {
    fields: [\"Name\",\"Address\",\"City\"]
};
希望能有所帮助。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...