使用Scala中的点表示法访问插值字符串中的嵌套列表项

时间:2015-11-03 20:38:38

标签: json scala string-interpolation

我正在尝试通过JSON传递一个我无法访问的值。我们有一个数据结构(显然不是由我构建的,否则我可能会理解它),当发送到浏览器时看起来像这样:

{Foo(Bar(List(Baz(List(G3),w))),G3,None)}

这是通过JSON写入方法发送的,但原始的Scala行看起来像:

val hint = Some(s"{$question}")其中$question的类型为Foo

我尝试使用点表示法以我认为可行的方式访问列表项:

val hint = Some(s"{$question.Bar.Baz})" val hint = Some(s"{$question.Bar(0).Baz(0)"})

这是我想要删除并发送的最深G3,但是JSON对象看起来像:

{Foo(Bar(List(Baz(List(G3),w))),G3,None)}.Bar.Baz{Foo(Bar(List(Baz(List(G3),w))),G3,None)}.Bar(0).Baz(0)

我必须从根本上忽略这里涉及的数据结构。

1 个答案:

答案 0 :(得分:3)

我认为您只是使用了错误的语法。 $之前需要{}{}对于任何比变量名称更复杂的表达式都是必需的:

 s"${question.bar(0).baz(0)}"