【问题标题】:JSON from REST service returning under wrong name来自 REST 服务的 JSON 以错误的名称返回
【发布时间】:2015-12-27 14:40:28
【问题描述】:

我目前正在构建一个带有 Netbeans RESTful 后端的 angularJS/typescript Web 应用程序。我为供应商设置了我的打字稿界面,如下所示:

interface Vendor {
    vendorno: number,
    name: string,
    address1: string,
    city: string,
    province: string,
    postalcode: string,
    phone: string,
    vendortype: string,
    email: string;
}

当我调用我的休息服务以从我的 JavaDB 中撤回所有供应商时,它正在撤回以与我的接口完全不同的方案命名的 JSON,并且为了让我的角度指令工作,我必须参考取而代之的是这个 JSON 的命名方案,它会导致事情中断:

[{"vendorAddress":"543 Sycamore Ave","vendorCity":"Toronto","vendorEmail":"bb@depot.ca","vendorName":"Big Bills Depot","vendorNo":1,"vendorPhone":"(999) 555-5555","vendorPostalcode":"N1P1N5","vendorProvince":"ON","vendorType":"Trusted"},
{"vendorAddress":"628 Richmond Street","vendorCity":"London","vendorEmail":"abc@supply.ca","vendorName":"ABC Supply Co.","vendorNo":2,"vendorPhone":"(519) 123-4567","vendorPostalcode":"N6C1L7","vendorProvince":"ON","vendorType":"Trusted"},
{"vendorAddress":"123 Main Boulevard","vendorCity":"Burlington","vendorEmail":"gs@shack.net","vendorName":"Gadget Shack","vendorNo":3,"vendorPhone":"(613) 444-3423","vendorPostalcode":"N3X5S2","vendorProvince":"ON","vendorType":"Unknown"}]

为了在我的局部表格中显示此供应商数据,我必须使用以下角度绑定:

<div class="col-lg-1 col-sm-1 col-xs-1 text-left">{{vend.vendorNo}}</div>
<div class="col-lg-4 col-sm-4 col-xs-4 text-center">{{vend.vendorName}}</div>
<div class="col-lg-3 col-sm-3 col-xs-3 text-center">{{vend.vendorCity}}</div>
<div class="col-lg-3 col-sm-3 col-xs-3 text-center">{{vend.vendorType}}</div>

angularJS 或我的 Java REST 服务是否有任何理由自动重命名我返回的 JSON 以具有这些属性名称?

【问题讨论】:

  • 你找错地方了。如果这就是您收到的内容,那就是服务器正在发送的内容……除非您碰巧使用任何 $httpInterceptors 循环遍历数据并更改它,但这是极不可能的,并且会写入您的 Angular 应用程序。跨度>
  • 您是否在后端使用 ORM 工具?您可能有一个 ORM 层将您的数据库字段(例如 vendorCity映射 到对象字段名称 (city)。但是,该 REST 服务似乎是直接从具有原始表列名称的后端数据库驱动的。这在后端、中间层和客户端由不同团队开发的大型项目中经常发生。

标签: json angularjs rest netbeans typescript


【解决方案1】:

angularJS 或我的 Java REST 服务是否有任何理由自动重命名我返回的 JSON 以具有这些属性名称

它不是棱角分明的。它可能是 Java REST 服务。

一种选择是更新接口以匹配服务器返回的内容:

interface Vendor {
    vendorNo: number;
    vendorName: string;
    // so on ...
}

【讨论】:

    猜你喜欢
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多