Рассмотрим следующий пример JSON:Play Framework 2 в Scala: Разбор вариационного формата JSON?
properties: {
"key1": "a",
"key2": 1,
"key3": null,
"key4": 0.56
....
"key99": "zzzzz"
}
Мой код должен быть в состоянии разобрать, что в какой-то структуры Scala (случай класса?) И обратно в формат JSON.
Для меня, поскольку в properties
нет конечного числа элементов, это выглядит как Map[String, T]
. И поскольку значение каждого внутреннего свойства может быть нескольких типов, я не совсем уверен, как представить это как конечную структуру Scala. Документация по неявным Reads
, Writes
и Formats
имеет смысл для меня, но они, похоже, не справляются с более сложными примерами, как и выше.
Возможно также, что я думаю об этом совершенно неправильно.
Я новичок в фреймворке (а также на языке), и мне нелегко обернуть голову вокруг того, как это должно быть представлено - любая оценка была бы очень признательна.
Что вы хотите сделать с вашими данными, учитывая, что вы не знаете, какие клавиши или какой тип значений он может содержать? Поскольку вам все равно придется сериализовать его на JSON, похоже, что Json transformer - это ваша вещь. https://www.playframework.com/documentation/2.4.x/ScalaJsonTransformers – Tyth
Я создаю приложение, которое в настоящее время принимает HTTP-запрос, аналогичный приведенному выше, переводит его на объект Scala, дополняет его дополнительными ключами/значениями, преобразует его обратно в JSON и проксирует запрос в другую систему. Ваш ответ думал, что я думаю об этом по-другому - возможно, мне не нужно, чтобы это было преобразовано в класс case - я мог бы просто использовать его как 'JsValue'. Это похоже на то, что я боюсь, Меня все еще интересует, как бы вы это сделали. – clocklear
@clocklear Вам нужны значения в json для увеличения новых? –