gpt4 book ai didi

javascript - Backbone.js JSON 结构

转载 作者:行者123 更新时间:2023-11-30 17:17:03 26 4
gpt4 key购买 nike

我对如何使用具有 Backbone 的 API 的 JSON 结构感到困惑。

无法控制 api 的结构(它是来自 wordpress 插件 - woocommerce 的 REST api)。

我对 Backbone 的经验相对较少,我自己创建的每个 json api 都具有以下结构:

[
{
"id": "1",
"name": "John",
"email": "john@example.com",
"order_number": "#3473388"
},
{
"id": "2",
"name": "Jane Doe",
"email": "jane@example.com",
"order_number": "#8877632"
}
]

一组对象,既漂亮又简单!

但是,我现在使用的 api 的结构具有以下结构:

{
"orders": [
{
"id": 130259,
"name": "John Doe",
"email": "john@example.com",
"order_number": "#3473388"
},
{
"id": 130259,
"name": "Jane Doe",
"email": "jane@example.com",
"order_number": "#3473388"
}
]
}

这是我的订单模型:

App.Models.Order = Backbone.Model.extend({

defaults: {
id: '',
name: '',
email: '',
order_number: ''
}

});

这是我的订单集合:

App.Collections.Orders = Backbone.Collection.extend({

model: App.Models.Order,

url: 'http://api.example.com/orders'

});

我的模型/集合的结构没有很好地映射到 api,当 fetching 我的集合时,返回了数据,但不适合。我如何使用 backbone 来适应这个 json 结构?

更新

像这样覆盖集合的解析方法(感谢 Yura)返回数据:

App.Collections.Orders = Backbone.Collection.extend({

model: App.Models.Order,

url: 'http://api.example.com/orders',

parse: function( resp ){
return resp.orders;
}

});

返回的数据是多维的,如下所示:

[
{
"id": 130285,
"order_number": "#130285",
"billing_address": {
"first_name": "John",
"last_name": "Doe",
"company": "",
"address_1": "13 Green Willow",
"address_2": "",
"city": "Celbridge",
"state": "Kildare",
"postcode": "",
"country": "IE",
"email": "johndoe@hotmail.com",
"phone": "87384348043"
}
}
]

在 parse 方法中,如何将多维 json 映射到我的集合模型?

最佳答案

由于您的 API 返回可用于初始化模型的对象数组,因此您可以对集合使用 parse,如下所示:

App.Collections.Orders = Backbone.Collection.extend({

model: App.Models.Order,

url: 'http://api.example.com/orders',

parse: function( resp ){
return resp.orders;
}

});

如果您的 API 返回对象的普通数组,则您不需要parse
Collection.parse 的文档:http://backbonejs.org/#Collection-parse

更新

如果您需要将单个对象解析为模型键,您可以在模型上添加 parse 方法并返回对象,其中键将是模型的键和从响应传递的值。

我创建了一个用于演示的 jsfiddle:http://jsfiddle.net/yuraji/x62jje39/

关于javascript - Backbone.js JSON 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25916438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com