当前位置: 首页 > 面试题库 >

将JSON转换为RESTAdapter EmberJS的适当格式

长孙昀
2023-03-14
问题内容

我从API收到了以下格式的JSON

[
  {
    "id": 45,
    "name": "Pasta",
    "_order": 0,
    "is_hidden": null,
    "is_list": false
  },
  {
    "id": 46,
    "name": "Salads",
    "_order": 1,
    "is_hidden": null,
    "is_list": false
  },
  {
    "id": 47,
    "name": "Dessert",
    "_order": 2,
    "is_hidden": null,
    "is_list": false
  }
];

我看到它的格式对于标准RESTAdapter无效,我需要将模型名称放在第一位。在我的示例中,它可能应该类似于:

{
  "category":
    [
      {
        "id": 45,
        "name": "Pasta",
        "_order": 0,
        "is_hidden": null,
        "is_list": false
      },
      {
        "id": 46,
        "name": "Salads",
        "_order": 1,
        "is_hidden": null,
        "is_list": false
      },
      {
        "id": 47,
        "name": "Dessert",
        "_order": 2,
        "is_hidden": null,
        "is_list": false
      }
    ]
  }

那么如何使它在我的适配器中看起来像这样?似乎我应该使用 DS.RESTSerializer,但是我不知道应该重写哪种方法…


问题答案:

我今天早些时候遇到了这个问题。解决该问题的一种好方法是为ApplicationSerializer定义normalizePayload方法。它被覆盖了,因此您不会影响其他任何东西。

例如

App.ApplicationSerializer = DS.RESTSerializer.extend({
    normalizePayload: function(type, payload) {
        return { category: payload };
    }
}

如果您只想对某些已处理的有效负载执行此操作,则只需在其中添加条件。

App.ApplicationSerializer = DS.RESTSerializer.extend({
    normalizePayload: function(type, payload) {
        if (type.toString() === 'App.Category') {
            return { category: payload };
        }
    }
}

有关normalizePayload方法的更多信息,请参见http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_normalizePayload



 类似资料:
  • 我有一个pdf文件(附件)。我的目标是使用pdfbox将pdf转换为图像(与在windows中使用剪切工具相同)。pdf有各种形状和文本。 我使用的代码如下: 我如何让pdfbox采取像直接快照图像的东西? 另外,我注意到png的图像质量不太好,有没有办法提高生成图像的分辨率? 编辑:这是pdf(见第68页)https://drive.google.com/file/d/0B0ZiP71EQHz2

  • 问题内容: 我尝试使用json格式的文件作为输入。这是示例数据的片段。 可以在r中使用这种复杂的json格式制作一个csv,以便更平滑地处理数据吗? 例如,有以下基本类别:基本信息照片创建者位置类别网址 可以制作带有basic_information.id,creator.id等子类别类别的csv文件吗? 问题答案: 在研究您的答案时,我在评论中张贴了一些链接,但现在我非常确信这是解决问题的方法。

  • 问题内容: 我有,我需要将其转换为应匹配此模式的类型对象-“ 2016-11-16T18:42:33.049Z”。我怎样才能做到这一点? 问题答案: Date d = new Date((long)timestamp*1000); 将创建一个实例。稍后显示它是另一回事。 我认为这就是您想要的: 测试:

  • 问题内容: 我有一个带有两列的Pandas –一列带有文件名,一列带有生成它的时间: 我正在尝试将其转换为以下格式的JSON文件: 使用命令时,将以以下格式获取记录: 我只是想知道是否存在以所需格式获取JSON文件的选项。任何帮助,将不胜感激。 问题答案: 您得到的输出是。因此,您可以根据需要简单地对其进行切片,并从中删除逗号。 要将输出写入文本文件,您可以执行以下操作:

  • 问题内容: 我收到了JSON文件,但不知道如何读取。有转换器可以在其中生成漂亮的CSV文件,以便将其加载到MS Excel中吗?我不懂JSON,所以如果有人编写脚本或将我链接到可以完成此任务的脚本,那将非常棒。 我在http://json.bloople.net上找到了一些接近的东西,但是不幸的是,它是JSON到HTML。 编辑:jsonformat.com越来越近,但是它仍然不是CSV。 问题答

  • 我试图用以下格式转换一个JSON: 我已经计算了JSON,现在我需要使用evaluatejsonpath输出中的属性来获得以下格式: 它们是内置的处理器来完成此转换吗,还是需要在executionscript处理器中开发一个Python脚本?