改造 JSON 反序列化对象的 $ref 对其原始副本的引用

2024-02-22

我使用 Microsoft.Net 和 Breeze 来获取 API,并且使用 Retrofit 得到的结果嵌套了重复的相同对象。例如,EmployeeJob 具有 Customer 导航属性,因此 API 结果如下所示

 {
   Id:1,
   "Customer_Id": 39,
    "Customer": {
        "$id": "2",
        "$type": "Wit.Trade.Entities.Customer, Wit.Trade",
        "CourtesyTitle": "Mr",
        "FirstName": "Ahmad"
    }
}
{
  Id:2
  "Customer_Id": 39,
    "Customer": {
        "$ref": "2" //here same customer Ahmad
    },
}

现在是JavaList我得到这些EmployeeJobs只有Customer在第一个记录和其他什么都没有。我怎样才能绘制地图$ref:"2"为其原始值而不是这个值$ref.

出于网络和性能原因,我不希望我的服务器 API 发送完整的对象,这就是我想要反序列化这些对象的原因$refs在客户端就像Angularjs $resource service对我们来说。


目前我已经手动解决了这样的 $ref 解决方案

//========== $ref manual solution for employee jobs' customers
            List<Customer> completedCustomers = new ArrayList<>();
            for (EmployeeJob empJob : empJobs) {
                if (empJob.Customer != null && empJob.Customer.Id == null && empJob .Customer.$ref != null) {
                    for (Customer comCus : completedCustomers) {
                        if (comCus.$id.equalsIgnoreCase(empJob.Customer.$ref))
                            empJob.Customer = comCus;
                    }
                } else
                    completedCustomers.add(empJob.Customer);
            }

Now empJobs将 $refs 替换为相应的 Customer。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

改造 JSON 反序列化对象的 $ref 对其原始副本的引用 的相关文章

随机推荐

  • 如何将多首歌曲/曲目加载到pygame中?

    有没有办法将多首歌曲加载到 Pygame 中 我说的不是这样的音效 crash sound pygame mixer Sound crash ogg and pygame mixer Sound play crash 因为我知道显然你可以有
  • Restlet 获取 HTTP 状态代码 204 而不是 200

    对于第一个请求 我收到 JSON 响应 从下一个请求开始 我开始获取此日志和 HTTP 状态代码 204 即使 ServerResource 已成功返回表示 org restlet engine adapter ServerAdapter
  • PHP MySQL 自动完成

    我有一个自动完成搜索字段 当用户输入名称时 结果会显示在下拉列表中 这一切都工作正常 并按应有的方式显示数据 然而 我正在等待将每个结果设为链接 因此当显示结果时 用户可以单击正确的名称 然后将他们带到他们的个人资料 请参阅下面的脚本
  • XML 检测调试模式

    我知道我可以通过编程方式使用 if BuildConfig DEBUG do something for a debug build 但是 我想做的是在调试模式下显示水印 有没有办法在 XML 文件中执行类似的操作 现在可以用数据绑定库 h
  • matplotlib 极坐标二维直方图

    我试图在极轴上绘制一些直方图数据 但它似乎无法正常工作 下面是一个例子 我使用找到的自定义投影如何使 matplotlib 极坐标图中的角度顺时针旋转 顶部为 0 https stackoverflow com questions 2417
  • Xcode 6:Fabric Crashlytics 更新后找不到“Answers.h”文件

    我正在 Xcode 6 3 2 中的 Objective C 项目中编写故事板 突然 当我尝试构建时出现错误 Developer ProjectName Crashlytics framework Headers Crashlytics h
  • 用于托管 MySQL 数据库的 Cloud SQL 或虚拟机实例

    我有一个网站 但我很困惑在哪里托管其数据库 Google Cloud SQL D1 层具有 0 5 GB RAM 其费用为每天 1 46 美元 GCE n1 standard 2 有 7 5 GB RAM 其成本为每天 1 68 我将当前的
  • Azure 管道在解析管道 YAML(唯一作业名称)时遇到错误

    在我的 azure devops 项目中 我使用模板创建了一个管道 这是我的构建管道的主要 yaml 文件 name Test Date yyyyMMdd Rev r resources repositories repository ap
  • Common LISP 和 Stack 中的数字类型边界在 GHCI 中流动

    第一个问题 Common LISP 和 Haskell 的新手 请友善 我在 Common LISP 中有一个函数 下面的代码 旨在判断三角形的面积是否是整数 整数 defun area int p a b c let s a b c 2
  • 将 Javascript 变量传递给 Codeigniter 中的 PHP 控制器

    大家好 我有这个 javascript 它必须传递一些变量 包括数组 我的问题是我无法使用 URL 传递这些值 因为我可能会处理许多值 我正在尝试使用 ajax JSON 但我无法检索值 这是我的 javascript function p
  • 如何使用 BeautifulSoup 获取标签内的 html 文本

    如何从示例 HTML 中提取数据beautifulsoup
  • Rails:表单提交后访问视图中的参数

    在我的 Rails 3 2 项目中 我有一个表单来创建一个新站点new html erb in app views sites div class field br div div class actions div 然后create函数于
  • IntelliJ找不到具体的方法

    我在以下代码中遇到编译错误 我不知道如何修复 String path document txt File file new File path Files readString file toPath cannot find symbol
  • Android:使用 xml 布局的日期选择器

    我尝试使用 xml 代码显示日期选择器 但它没有显示任何东西 我可以只通过java代码显示DatePicker吗 datePickerExample java public class datePickerExample extends A
  • 是否可以使用活动记录为表定义复合主键? [复制]

    这个问题在这里已经有答案了 我在没有 Rails 的 ruby 项目中使用 ActiveRecord 我需要为表定义复合主键 通常迁移会自动创建主键 是否可以使用活动记录为表定义自己的复合主键 有一些宝石可以赋予你这种能力 例如复合主键 h
  • 在 d3 中的图表上渲染之前简化线条

    我正在尝试绘制从蜂箱实时收集的数据 我们计划每 5 分钟收集一次数据 因此一年内将有大约 100 000 个数据点 我想设置一个图表来绘制数据 并在每次数据库更改时让新数据进入图表 使用 Meteor 我有一个简单的模型datacomb m
  • 如何使用 Python API 获取我在盈透证券的账户头寸?

    编辑 我找到了有关错误消息的解决方案 这是 IB 的 API 上的错误 我在下面作为答案显示的代码对于那些寻找干净的解决方案来从 IB 账户读取头寸和资产净值的人来说应该很有用 原来的问题 参见下面的解决方案 在此留下原始问题以获取上下文
  • React Apollo GraphQL 搜索/过滤

    我有一个使用 Apollo 客户端的带有 GraphQL 服务器的 React 项目 我试图弄清楚如何根据搜索文本和过滤选择更改查询结果 如果有人可以查看我的代码并给我一些帮助 我将不胜感激 对所有代码感到抱歉 我想也许它们都是相关的 服务
  • python:安装日志记录模块[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有 python 3 5 尝试在 PyCharm 中安装日志记录包 但出现错误 安装包 logging 时发生错误 确保您使用此包支持的
  • 改造 JSON 反序列化对象的 $ref 对其原始副本的引用

    我使用 Microsoft Net 和 Breeze 来获取 API 并且使用 Retrofit 得到的结果嵌套了重复的相同对象 例如 EmployeeJob 具有 Customer 导航属性 因此 API 结果如下所示 Id 1 Cust