Jsonpath 获取子节点数据



>我在下面有一个示例 json 输入

{    
 "India":{
      "Attributes":{"Time":"2006-05-04T03:22:11.499Z"},
      "ActiveCity":{
           "profile":"Mumbai"
      },
      "CurrentCities":{
           "Mumbai":{"population":"121212121","Area":8},
           "Delhi":{"population":"121212121","Area":8},
           "Lonng":{"population":"121212121","Area":8}
      },
      "FeatureCities":{
           "NewMumbai":{"population":"121212121","Area":8},
           "NewDelhi":{"population":"121212121","Area":8},
           "NewLonng":{"population":"121212121","Area":8}
      }
 }
}

我正在使用打字稿将当前的城市部分替换为仅ActiveCity,例如我的输出应如下所示

{    
 "India":{
      "Attributes":{"Time":"2006-05-04T03:22:11.499Z"},
      "ActiveCity":{
           "profile":"Mumbai"
      },
      "CurrentCities":{
           "Mumbai":{"population":"121212121","Area":8}
      },
      "FeatureCities":{
           "NewMumbai":{"population":"121212121","Area":8},
           "NewDelhi":{"population":"121212121","Area":8},
           "NewLonng":{"population":"121212121","Area":8}
      }
 }
}

使用 Jsonpath 如何在打字稿中实现这一点? 有什么建议吗?

只需使用当前值访问currentCities中的对象:

 obj.India.CurrentCities[obj.India.ActiveCity.profile]

let obj = {  "India": {    "Attributes": {      "Time": "2006-05-04T03:22:11.499Z"    },    "ActiveCity": {      "profile": "Mumbai"    },    "CurrentCities": {      "Mumbai": {        "population": "121212121",        "Area": 8      },      "Delhi": {        "population": "121212121",        "Area": 8      },      "Lonng": {        "population": "121212121",        "Area": 8      }    },    "FeatureCities": {      "NewMumbai": {        "population": "121212121",        "Area": 8      },      "NewDelhi": {        "population": "121212121",        "Area": 8      },      "NewLonng": {        "population": "121212121",        "Area": 8      }    }  }}
obj.India.CurrentCities = {[obj.India.ActiveCity.profile]: obj.India.CurrentCities[obj.India.ActiveCity.profile]}
console.log(obj);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新