在 Scala 中使用点表示法访问内插字符串中的嵌套列表项
Accessing nested list items in an interpolated string using dot notation in Scala
我试图通过 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)
我一定是从根本上遗漏了这里涉及的数据结构。
我认为您只是使用了错误的语法。 $
需要在 {}
之前,并且 {}
对于任何比变量名更复杂的表达式都是必需的:
s"${question.bar(0).baz(0)}"
我试图通过 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)
我一定是从根本上遗漏了这里涉及的数据结构。
我认为您只是使用了错误的语法。 $
需要在 {}
之前,并且 {}
对于任何比变量名更复杂的表达式都是必需的:
s"${question.bar(0).baz(0)}"