我通过 $.ajax 请求从 API 返回 JSON 并最终得到一个 JSON 块:
var result = {
"status": 200,
"offset": 5,
"limit": 25,
"total": 7,
"url": "/v2/api/dataset/topten?",
"results": [
{
"datasets": [
"dataset",
"tt_all"
],
"id": "Hxb6VtpFRQ9gEr",
"title": "Venues",
"type": "topten",
"url": "/v2/dataset/topten/Hxb6VtpFRQ9gEr"
},
}
或类似的东西。嵌套数组包含更大请求中的更多结果。
我想解析这些信息,将其放入一个对象中,并为该对象提供方法以从各个级别提取特定的信息位 - 例如:
result.title => "Venues" or result.id => "Hxb6v...."
但是,AJAX 请求的输出可以由用户定义分配给 var,因此我想创建一个函数,在它退出 ajax 成功函数并分配给结果或其他内容之前,将其粘贴在具有可用方法的对象中。
我不是特别想去:
Object.prototype.method = function(){ // extend Object here }
方法,因为它使人生气。
如果我制作另一个对象来扩展原型:
function Datalump(){};
Datalump.prototype.title = function(){
// get title or something here
};
我正在努力将什么传递给什么并将事情分配给错误的事情。
如何进行此方法/对象创建?
任何建议或指示将不胜感激。
更新:谢谢大家的帮助——这很有启发性。我已将 Mike Brant 的答案标记为正确,因为它似乎最适合我提出的问题。George Jempty 的回答也是一次非常有用的学习经历。
实际上,我在项目中的方向略有不同(新要求!),但所有答案的一部分可能会进入“阿尔法”。
非常感谢大家。