gpt4 book ai didi

json - Ember 数据的 JSON 格式不正确

转载 作者:行者123 更新时间:2023-12-04 18:04:54 27 4
gpt4 key购买 nike

我正在使用最新版本的 EmberJS 和 Ember Data。
我有下一个 JSON 数据:

[{
"id": 6,
"name": "First object",
"vol": 40,
"description": "bla bla bla",
"category": "first"
}, {
"id": 7,
"name": "Second object",
"vol": 17,
"description": "Some description",
"category": "second"
}]

和下一个模型:
import DS from 'ember-data';

export default DS.Model.extend({
name: DS.attr('string'),
vol: DS.attr('number'),
description: DS.attr('string'),
category: DS.attr('string')
});

我不明白如何让 Ember 数据工作。我怀疑 ember 数据预期如下:
[{ 
model-name {
"id": 6,
"name": "First object",
"vol": 40,
"description": "bla bla bla",
"category": "first"
}
}, {
model-name {
"id": 7,
"name": "Second object",
"vol": 17,
"description": "Some description",
"category": "second"
}
}]

在控制台中,我有一堆警告:
WARNING: Encountered "0" in payload, but no model was found for model
name "0" (resolved model name using emdber-drink-
it@serializer:application:.modelNameFromPayloadKey("0"))
WARNING: Encountered "1" in payload, but no model was found for model
name "1" (resolved model name using emdber-drink-
it@serializer:application:.modelNameFromPayloadKey("1"))

以及一百多条类似的记录(即服务器根据请求返回的记录数)。
并且存储中没有数据。

如何在不更改从服务器收到的 JSON 的情况下解决此问题?

最佳答案

来自 http://emberjs.com/api/data/classes/DS.JSONSerializer.html

In Ember Data a Serializer is used to serialize and deserialize records when they are transferred in and out of an external source. This process involves normalizing property names, transforming attribute values and serializing relationships.



此时有4种类型的序列化器:
  • DS.Serializer
  • DS.JSONSerializer
  • DS.RESTSerializer
  • DS.JSONAPISerializer


  • 您拥有的 JSON 数据是纯 json。

    JSONSerializer is useful for simpler or legacy backends that may not support the http://jsonapi.org/ spec



    所以你需要 JSONSerializer 这是使用纯 json 数据的最简单的解决方案。
    使用 ember-cli 很容易创建一个新的序列化程序,例如模型 book :
    ember generate serializer book

    这将产生这样的东西:
    version: 1.13.8
    installing serializer
    create app/serializers/book.js
    installing serializer-test
    create tests/unit/serializers/book-test.js

    前面的命令将创建一个 RESTSerializer 类型的序列化程序。 (如果您不使用 ember -cli 只需在手边创建此文件)
    // app/serializers/book.js
    import DS from 'ember-data';

    export default DS.RESTSerializer.extend({
    });

    然后更改 RESTSerializer来自 JSONSerializer :
    import DS from 'ember-data';

    export default DS.JSONSerializer.extend({
    primaryKey: '_id', // useful for mongodb-like data
    });

    我希望你和我一样喜欢学习 ember。

    关于json - Ember 数据的 JSON 格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31731934/

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