代码之家  ›  专栏  ›  技术社区  ›  Stand__Sure

无空检查金字塔的紧凑代码walk jtokens(newtonsoft)

  •  0
  • Stand__Sure  · 技术社区  · 8 年前

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

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

    匹配属性有好几层。

    赋值,空检查,重复:这是可行的,但是得到的方法长度不仅仅是一个屏幕,而且尖叫着必须有一个更聪明的方法。 foo["bar"]["propA"]... 很理想,但在某些情况下会导致空引用。

    有没有更紧凑的方法来做呢?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Crowcoder    8 年前

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

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