Как сказал Дженс, для этого обычно достаточно регулярного выражения. Тем не менее, синтаксис немного отличается:
"""\{.*\}""".r
создает объект scala.util.matching.Regex , который предоставляет типичные методы запросов, которые вы, возможно, захотите сделать с регулярным выражением.
В вашем случае вас просто интересует первое вхождение в последовательности, которое выполняется с помощью findFirstIn
:
scala> """\{.*\}""".r.findFirstIn("""[{"insured_initials":"Tt","insured_surname":"Test"}=, _=1329793147757,callback=jQuery1707229194729661704_1329793018352""")
res1: Option[String] = Some({"insured_initials":"Tt","insured_surname":"Test"})
Обратите внимание, что возвращается тип Option
, который вы можете легко использовать в совпадении, чтобы узнать, было ли регулярное выражение найдено успешно или нет.
Редактировать: Последнее, на что следует обратить внимание, это то, что регулярные выражения обычно не совпадают с переносами строк, поэтому, если ваш JSON не полностью содержится в первой строке, вы можете сначала подумать об устранении разрывов строк.