【问题标题】:How to preserve object property casing when using Rxjs map function使用 Rxjs 映射功能时如何保留对象属性大小写
【发布时间】:2017-05-08 22:05:27
【问题描述】:

我是 Angular2 的新手,使用 http 服务从 asp.net mvc webapi 获取数据。
API 返回的数据格式如下

RequestResponse{
    public string Message {get;set;}
    public int Status {get;set;} 
}

Http get 请求获取数据并从Rxjs map(result => result.json()) 馈送到map 函数,它将结果转换为如下所示的格式

{
    message : 'success!',
    status : 1
}

如您所见,输出属性名称不区分大小写。
从其他 SO 问题中读到,我们必须编写自己的映射器函数以保持区分大小写。
我的疑问是,是否可以从Rxjs 配置映射器功能以保持区分大小写?还是我们应该编写自己的映射器函数?

编辑:看来问题出在.json()(?)为什么.json()将属性名称转换为小写?

编辑: 解决方案:感谢@Sergey 提供clue。问题来自 .Net Core,它默认将属性名称转换为 camelCase。如果有人寻求解决方案,请访问Github page

【问题讨论】:

    标签: angular rxjs angular2-http


    【解决方案1】:

    Map 是一个简单的函数,可让您转换数据。它非常适合您的需求:

    request.map(response => {
      let data = response.json();
      return <RequestResponse> {
        Message: data.message,
        Status: data.status
      };
    });
    

    【讨论】:

    • 为什么在第一种情况下response.json() 将属性名称转换为小写?
    • @Metri,它不会转换任何它解析 json 的东西。检查你的 api 响应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    相关资源
    最近更新 更多