繁体   English   中英

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

[英]Unable to parse object sent from server on client side in Javascript/Typescript

我用TypeScript编写了一个基于骨架JS的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());
            }

这是进行REST调用时实际对象的外观:

[
  {
    "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]

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

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

您不能直接输出对象。 您必须循环对象的属性,并且由于对象位于数组中,因此必须遍历数组。 您可以使用map()

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

的jsfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM