Описание тега argonaut

Argonaut - это библиотека JSON для Scala, предоставляющая богатую библиотеку для синтаксического анализа, печати и обработки, а также удобные кодеки для преобразования в типы данных scala и обратно.
0 ответов

Добавьте дополнительное поле к экземпляру EncodeJson на argonaut-shapeles

Есть ли способ указать дополнительное поле, которое добавляется в автоматически сгенерированный кодировщик класса дел? Поле будет полем типа типа суммы, частью которого является класс case, поэтому он генерирует действительный json даже в том случае…
19 май '16 в 08:53
1 ответ

Написание DecodeJson для иерархии запечатанных черт?

Дано: import argonaut._ import Argonaut._ import ArgonautShapeless._ sealed trait Parent case class Foo(x: Int) extends Parent case class Bar(y: String) extends Parent Я попытался определить DecodeJson[Parent]: implicit val parentDecodeJson: DecodeJ…
17 окт '17 в 20:35
1 ответ

Нужно ли избегать размышлений при разработке библиотек scala?

Принимать argonaut например, в некоторых наших проектах, когда есть необходимость обрабатывать JSON, люди будут использовать для этого аргонавт и жестко кодировать поля, например: implicit def AddressCodecJson: CodecJson[Address] = casecodec3(Addres…
13 июл '15 в 05:22
1 ответ

Простая библиотека Scala JSON для нерекурсивных классов

У меня есть классы дел, которые содержат только строки или коллекции строк и хотят преобразовать их в объекты JSON с соответствующими именами полей плюс дополнительное поле для обозначения типа. sealed trait Item case class ProductX(a: String, b: St…
20 мар '15 в 19:17
1 ответ

Как удалить ключи с нулевыми значениями из объектов Argonaut Json

Как можно написать метод расширения, чтобы удалить все ключи с null значение от Аргонавта Json объект: Я попробовал это: package object Extensions { implicit class JsonExtensions(val json: Json) extends AnyVal { def removeNulls: Json = { json.withOb…
02 авг '16 в 18:16
2 ответа

Как получить лучшие сообщения об ошибках при разборе JSON с Argonaut и пользовательскими кодеками

Я использую Argonaut для анализа JSON с моими пользовательскими кодеками. Мой код выглядит так: val json: String = ... val parsed = Parse.decodeEither[MyClass](json) val checks = if (parsed.isRight) parsed.right.get else sys.error("Unable to parse M…
16 ноя '18 в 14:51
1 ответ

Расшифровывает запечатанную черту в Argonaut на основе структуры JSON?

Учитывая следующий пример: sealed trait Id case class NewId(prefix: String, id: String) extends Id case class RevisedId(prefix: String, id: String, rev: String) extends Id case class User(key: Id, name: String) val json = """ { "key": { "prefix": "u…
23 авг '16 в 19:02
1 ответ

Ошибки при отправке данных в теле с помощью Finagle/Finch в Scala

Я использую Finagle/Finch, и я получаю эту ошибку: diverging implicit expansion for type argonaut.DecodeJson[A] starting with method MapDecodeJson in trait DecodeJsons diverging implicit expansion for type argonaut.DecodeJson[V] starting with method…
20 апр '17 в 02:58
1 ответ

Аргонавт: расшифровка полиморфного массива

Объект JSON, для которого я пытаюсь написать DecodeJson[T] содержит массив различных "типов" (это означает, что структура его элементов в JSON варьируется). Единственной общей чертой является type поле, которое можно использовать для различения типо…
22 ноя '16 в 20:47
2 ответа

Преобразование имен полей JSON в аргонавте

Я пишу библиотеку для преобразования ответов JSON из API по причинам обратной совместимости. И что мне нужно сделать, это взять произвольный JSON и изменить определенные имена полей. Я использую scala и argonaut, но я не вижу никакого способа в доку…
21 янв '14 в 17:14
1 ответ

Как использовать argonaut для разбора необязательного настраиваемого поля?

Я определил пользователя, у которого есть информация о видео: case class User(name:String, video: Option[Video]) case class Video(title:String, url:String) И у нас есть такой JSON: { "name": "somename", "video": { "title": "my-video", "url": "https:…
22 окт '14 в 08:03
1 ответ

Не можете скомпилировать простое выражение Argonaut?

Это проблема несовместимости Скалаза и Аргонавта или это что-то еще? scala> import argonaut._ import argonaut._ scala> import Argonaut._ import Argonaut._ scala> import scalaz._ import scalaz._ scala> import Scalaz._ import Scalaz._ scal…
08 авг '16 в 11:47
0 ответов

Использование общедоступного REST API с использованием Argonaut

Я новичок в Спрей и Скала. В настоящее время я работаю с общедоступным REST API Guild Wars 2. Я хотел бы использовать некоторые ресурсы (например, собирать все ордера на продажу и покупку на торговом посту предмета с именем "Болт Булат"). Я использу…
18 фев '16 в 14:26
0 ответов

DecodeJson со всеми неудачными попытками декодирования?

Учитывая следующее из argonaut документы: import argonaut._ import Argonaut._ case class Person(name: String, age: Int) implicit def PersonDecodeJson: DecodeJson[Person] = jdecode2L(Person.apply)("name", "age") scala> Json.obj("name" -> jStrin…
30 июн '17 в 18:58
1 ответ

Декодирование в рекурсивные АТД с аргонавтом

Я пытаюсь разобрать json как { "element": "string", "content": "application/json" } где element решает, какой тип JSON. Но мой код не удается разобрать. http://scastie.org/15213 import scalaz._, Scalaz._ import argonaut._, Argonaut._, Shapeless._ ca…
26 фев '16 в 11:40
1 ответ

Извлечь тип, ключ и значение из объекта Rapture JSON

Я использую Rapture JSON с бэкэндом Argonaut (могу изменить это при необходимости). Учитывая произвольную строку JSON, мне нужно проанализировать ее как плоский объект (без вложенных объектов JSON), чтобы в идеале получить список кортежей (fieldName…
03 янв '16 в 14:12
1 ответ

Как преобразовать значение json "aaa,bbb" в "Seq[String]" с помощью argonaut?

Я использую аргонавт, чтобы разобрать JSON в тематических классах. Json: { "name" : "Mike", "email" : "a@aaa.com, b@bbb.com" } Scala: case class User(agentName: String, emails: Seq[String]) object User { implicit def DecodeJson: DecodeJson[User] = c…
19 сен '14 в 02:45
1 ответ

Json Argonaut Too Big For Case Case

Есть API, на который я не имею никакого влияния, который имеет объект результата JSON с членом, который имеет 23 поля. Парадигма case-классов не работает, потому что есть предел 22. Я видел, как Slick и другие библиотеки используют HLists для решени…
06 авг '14 в 06:28
2 ответа

Глубокое слияние данных JSON

Можно ли глубоко объединить структуру JSON, используя JSON лифта, аргонавт и т. Д. { "metrics": [{ "name": "abcde", "tags": { "oId": ["pqrs"], "uuid": ["A123-B234"], "entityType": ["test"], "entityName": ["test"] }, "aggregators": [{ "name": "sum", …
28 янв '14 в 06:41
0 ответов

Есть ли какой-нибудь более простой подход к предоставлению значения по умолчанию для незаполненного или пустого строкового поля при анализе JSON с argonaut?

Я использую Argonaut для разбора строк JSON. Существует требование: если какое-либо поле не предоставлено, или оно пустое или пустое, вместо этого укажите строку "не указано". У меня есть решение, но оно кажется очень сложным: case class User(name: …
22 сен '14 в 15:04