无法解析Javascript / Typescript中客户端服务器发送的对象

时间:2014-03-13 12:40:04

标签: javascript backbone.js typescript

我正在使用backboneJS在Typescript中编写一个javascript程序,其中服务器将带有结构化数据的对象发送到客户端,我无法在客户端中成功解析。该代码是一个typescript接口的实现,它接受来自服务器的数据或错误,以便为客户端进行调用。

Typescript接口是这样的:

interface PersistenceOptions {
        url?: string;
        beforeSend?: (jqxhr: JQueryXHR) => void;
        success?: (modelOrCollection?: any, response?: any, options?: any) => void;
        error?: (modelOrCollection?: any, jqxhr?: JQueryXHR, options?: any) => void;
    }

以下是成功函数的代码,无法呈现"响应"数据

success:function(modelOrCollection?: any, response?: any, options?: any){
                $holder.append(response.toString());
            }

以下是您进行休息呼叫时实际对象的样子:

[
  {
    "id": 0,
    "answer": "I like the device",
    "type": 0
  },
  {
    "id": 0,
    "answer": "Im not sure if I want it",
    "type": 0
  },
  {
    "id": 0,
    "answer": "This is a great device",
    "type": 0
  },
  {
    "id": 0,
    "answer": "I like it but its expensive",
    "type": 0
  }
]

屏幕上的实际输出如下所示:

[object Object],[object Object],[object Object],[object Object]

我希望能够解析并以编程方式操作输出。不确定如何。

(我也想知道这是什么类型的对象以及如何创建新对象。)

1 个答案:

答案 0 :(得分:1)

您无法直接输出对象。您必须循环对象的属性,并且因为对象在数组中,您必须遍历该数组。您可以使用map()

执行此操作
success: function (modelOrCollection ? : any, response ? : any, options ? : any) {
    response.map(function (object) {
        for (prop in object) {
            $holder.append(prop + ':' + object[prop] + '<br/>');
        }
    });
}

JSfiddle