紧凑的代码以遍历JTokens(Newtonsoft),而没有空检查金字塔

时间:2018-06-22 22:53:13

标签: c# json

场景:更改与数据库表中的ID相关联的名称需要更新包含名称和ID的另一个数据库表中的零个或多个序列化JSON值(JSON对象具有不同的“方案”,但使用相同的属性链(如果需要更新,并且ID是可与对象中存储的其他键冲突的合成键)。

有没有JToken foo = json["bar"] as JToken; if ( foo != null){...金字塔的干净替代品?

matching属性深达几层。

分配,空值检查,重复:可以,但是方法的长度超过了屏幕,并大声疾呼必须要有一种更聪明的方法。 foo["bar"]["propA"]...是理想的选择,但在某些情况下会导致空引用。

有更紧凑的方法吗?

1 个答案:

答案 0 :(得分:1)

空条件运算符可以大大减少您的代码:

var tkn = foo["whatever"]?["andnext"]?["andnext"]...etc.