Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Jan 30 2019 12:25
    justdoit0823 starred json4s/json4s
  • Jan 30 2019 11:05
    ericxsun commented #212
  • Jan 26 2019 13:29

    seratch on v3.6.4


  • Jan 26 2019 13:28

    seratch on 3.6

    version 3.6.4 Start 3.6.5 dev (compare)

  • Jan 26 2019 12:53

    seratch on 3.6

    Reduced OrElse objects allocati… Merge branch '3.6' into pr-580-… Merge branch '3.6' into pr-580-… and 1 more (compare)

  • Jan 26 2019 12:53
    seratch closed #582
  • Jan 26 2019 12:39
    seratch synchronize #582
  • Jan 26 2019 12:39

    seratch on 3.6

    fix Type alias for parameterize… Merge branch '3.6' into pr-577-… Merge pull request #581 from se… (compare)

  • Jan 26 2019 12:39
    seratch closed #581
  • Jan 26 2019 12:38
    seratch synchronize #582
  • Jan 26 2019 12:38
    seratch opened #582
  • Jan 26 2019 12:30
    seratch synchronize #581
  • Jan 26 2019 12:30

    seratch on 3.6

    Add 3.6.3 to previous versions … (compare)

  • Jan 26 2019 12:25

    seratch on master

    Reduced OrElse objects allocati… (compare)

  • Jan 26 2019 12:25
    seratch closed #580
  • Jan 26 2019 12:25
    seratch closed #579
  • Jan 26 2019 12:25
    seratch commented #580
  • Jan 26 2019 11:03
    poslegm commented #580
  • Jan 26 2019 10:56
    poslegm synchronize #580
  • Jan 26 2019 10:32
    seratch commented #580
Adianto Wibisono

If any of you have insight on what to do with legacy domain POJO, if we wanted to (de) serialize with json4s.

I saw a guy was asking question in StackOverflow from 2015, with no answer up to now : http://stackoverflow.com/questions/29789424/json4s-deserialisation-of-java-pojos.

So far what seems to work would be to have a matching Scala case classes for these POJOs, but this makes the domain model harder to maintain. If you guys have suggestions, please let me know.

Thanks in advance.

This message was deleted
Hello, I want to parse invalid JSON with json4s via jackson
(that json has single quotes around names)
jackson has an option for it,
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
but how can I tell json4s to use that jackson configuration?
oh, just JsonMethods.mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true), it seems.
Sam Smoot
Hi, I was just wondering if there's macros or anything for case-classes to produce a JsonFormat[MyCaseClass]? Like spray-json's jsonFormatN, or Argonaut's casecodecN helpers?
Sandeep Kota
Hi all,
From json string, based on the value of some Node, I would like to create a Scala Object. Do we have any formatters like in spring json?
Sandeep Kota
This should happen, while extracting the object from JSON String.
Eugene Platonov

recently found myself in a need to convert optional field from json input to a sequence in a case class
like case class A(s: String, i: Seq[Int]) and json " { "s": "boo", "i": 5}" or "{"s": "boo" }
managed to write a simple FieldSerializer that converts a specified JValue to JArray

def asArray(name: String): PartialFunction[JField, JField] = {
  case JField(`name`, value) => JField(name, JArray(List(value)))

@seratch would you be interested in a pr to add this to FieldSerializer object along renameFrom and others?

Wei Zhao
Hi, Can a JArray be sliced?
in querying
Wei Zhao
Yeah, there is a slice method
Wei Zhao
I want to query a value as JDouble or JInt
for {
JField(“field”, JDouble(field)) <- obj
querying failed if field is a int,how do I handle both double and int?
Kazuhiro Sera
Pedro Silva
Hello, is there a way to transform an instance of type T into a json tree of type JValue? All I see in the documentation is the direct transformation from instance to string.
Sam Smoot
@pedromss org.json4s.Extract.decompose(myObject)?
Pedro Silva
I'm using version 3.3.0 and that function caused problems when converting an Object that contained another object which in turn contained a Map. I was hoping to avoid it this time. Will try it again since it's a different context, thx.
Matt Farmer
Hey everyone.
Don’t know how much this room is monitored, but I wanted to bring something to everyone’s attention.
It looks like the json4s native API broke compatibility with lift-json with regard to extracting polymorphic types.
Minimal example forthcoming...
But wanted to flag here in case someone wanted to say “No, there’s some known changed behavior between json4s and lift-json"
marios iliofotou

Hi guys, anyone knows if there is a way to extract from a parsed string a class that looks like this?

case class Something(a: Int, b: Long, c: Option[Map[String,Any]])

I know that it has 3 fields but c can be an arbitrary json, so I want to extract what I can and then tread c differently down the road.

Bjørn Rustad
Hey guys! Is there any reason to believe that the memory footprint of parsing and transforming a large amount of json will be different between json4s.native and json4s.jackson?
Filippo De Luca

Hi Guys, I would like to write a serialiser for a class with a type parameter:

class Foo[T](val t: T)

How is it possible in json4s?

marios iliofotou
Hey guys, I create a SO question for what I asked few days, back, let me know if you can help, thanks! http://stackoverflow.com/questions/41709882/json4s-extractor-for-partial-fields-when-we-care-to-preserve-the-original-json
marios iliofotou
@mxl thanks for the answer on SO!
marios iliofotou
Hi all! is there a way for json4s to give the line causing the syntax error in the stack trace?
Justin Reeves
I'm a novice having some trouble using Json4s to extract a given hit from this json response. First thing first I have to decide on is the right data structure.
Reduced that down so there's only one result showing.
Justin Reeves
I got it. Wound up going through it with val hits = (json \ "hits" \ "hits").extract[List[Map[String,JValue]]] then dealing with the hit seperately.
Luis Medina

There is a weird issue (or is it expected?) where a numeric value in a JSON keeps getting extracted as a String even though an error should probably get thrown.
As an example, say I have a json string that looks like this:

    "test": 3

When I go to extract the "test" field from this JSON as a String, I'm expecting it to fail:

def getVal[T: Manifest](json: JValue, fieldName: String): Option[T] = {
    val field = json findField {
      case JField(name, _) if name == fieldName => true
      case _ => false

    field.map {
      case (_, value) => value.extract[T]

val json = JsonMethods.parse("""{"test":3}""")
val s: Option[String] = getVal[String](json, "test")  // Some(3)

Is there any way to force a type mismatch to cause this to fail?

Jason Fine


I am wondering about a serialization situation I've encountered. When I have a class which extends another class with the same fields, they get serialized twice. For example:

  abstract class Base(a: Int, b: String) {
    def doSomething(): String = a.toString + b
  case class MyClass(a: Int, b: String) extends Base(a, b)

when serializing an instance of MyClass we end up with the following:

Note: This won't happen if the fields are not used in the base class. I believe this is an issue with how getDecleredFields works, perhaps you want to filter out non-public fields from the super class?

Mark Grey
Hi friends. I am wondering if there is an easy way to obtain a JValue from a case class if I have a Formats and the necessary typeclasses in scope?
right now im using parse(write(cc)) but that seems a bit silly since it stringifies it and then reparses it
marios iliofotou
@DeaconDesperado u r looking for render()
Shivam Sharma
does json4s support Either datatype parsing in scala
Sumana Ravikrishnan
Hey guys. I'm getting a error: not found: value JNothing error even after importing import org.json4s._. I'm running it in spark-shell using Scala.
I'm not sure why this error is popping up. Does anyone have an idea?
Justin Reeves
Yo. Trying to deal with the fact that my data is standardized but I do need a Boolean extracted from the common cases. I tried writing a custom serializer in a scala worksheet but it says it can't find the constructor:
import org.json4s._
import org.json4s.native.JsonMethods._
import org.json4s.DefaultFormats
import org.json4s.native.JsonMethods.parse

class LooseBoolean(v: Option[Boolean]) {
  val value = v

class LooseBooleanSerializer(trueStrings: Seq[String], falseStrings: Seq[String])
  extends CustomSerializer[LooseBoolean](format => (
    case JBool(x) => new LooseBoolean(Some(x))
    case JString(x) if x != null  => new LooseBoolean(Some(trueStrings.contains(x) || !falseStrings.contains(x)))
    case _ => new LooseBoolean(None)
    case x: LooseBoolean => JBool(x.value.get)

val t = Seq("t","T","1","Yes")
val f = Seq("f","F","0","No")

implicit val jsonFormats: Formats = DefaultFormats + new LooseBooleanSerializer(t,f)

val json =
          |"myInt" : 123,
          |"myDouble" : 123.456,
          |"myWord" : "werd",
          |"myBoolean" : true,
          |"myIntStr": "123",
          |"myDoubleStr": "123.456",
          |"myBooleanTrueStr": "true",
          |"myBooleanFalseStr": "false",
          |"myBoolean_t": "t",
          |"myBoolean_f": "f",
          |"myBoolean_T": "T",
          |"myBoolean_Yes": "Yes",
          |"myBoolean_F": "F",
          |"myBoolean_1": "1",
          |"myBoolean_0": "0",
          |"myNull" : null
(json \ "myBoolean").extract[LooseBoolean]
@nonconvergent that actually works for me; can you try it outside a worksheet? I’ve never had much luck debugging json4s issues in an intellij worksheet