8000 Enum singleton cases should be optionally serialized to string. · Issue #2033 · circe/circe · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Enum singleton cases should be optionally serialized to string. #2033

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
liewhite opened this issue Oct 9, 2022 · 1 comment
Open

Enum singleton cases should be optionally serialized to string. #2033

liewhite opened this issue Oct 9, 2022 · 1 comment

Comments

@liewhite
Copy link
liewhite commented Oct 9, 2022
enum E {
  case E1
  case E2
}

val e: E = E.E1
println(e.asJson) // expect "E1"  json string here, but current is {"E1":{}} 

In most situations, serializing singleton cases to empty object is meaningless. Actually, we want a string const here.

@shannonbarnes
Copy link

I found this technique in source code to accomplish this behavior:

import io.circe.derivation.ConfiguredEnumCodec
import io.circe.derivation.Configuration
import io.circe.syntax.*

given Configuration = Configuration.default

enum E derives ConfiguredEnumCodec {
  case E1
  case E2
}

val e: E = E.E1
println(e.asJson) // got "E1"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
0