为什么带有不存在的键的更新运算符会产生两个单独的键/值?

问题描述

我正在尝试使用更新运算符

  case long at .reservations.*reservation.*flight.destination.longitude -> 
 long as Number as String {format: "###.000"} 
  case lat at .reservations.*reservation.*flight.*destination.latitude -> 
 lat as Number as String {format: "###.000"} 
   case congestion at .reservations.*reservation.flight.*destination.*status! 
    -> 
 "Moderate Traffic"
  //case dest at .reservations.*reservation.*flight.*destination -> dest
}

每个预订对象只有一个航班,只有一个目的地孩子。状态密钥不存在。更新运算符的结果是添加了两个单独的状态键/值,一个在原始目标对象中,然后在与原始子节点相同的级别上添加一个新的空目标对象。

"reservations":{ 
  "reservation": {
    "First Name" : "Andrea",...
    "flight": {
      "destination": { 
   
        "timeZone": "America/Los_Angeles","status": "Moderate Traffic"
       }
      },"flight": {
        "destination": {
          "status": "Moderate Traffic"
        }
      }
    },"reservation": {
      "First Name": "Andrea","Last Name": "Schmidt",...

如何调整选择器或添加什么条件表达式以仅在原始匹配的目标对象内添加缺少的状态键/值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)