Example of parse JSON in Scala

Example.1

Parsing JSON into case classes:

Scala
import play.api.libs.json._

// Define case classes representing the structure of your JSON data
case class Person(name: String, age: Int)

// Sample JSON string
val jsonStr = """{"name": "Alice", "age": 30}"""

// Parse JSON into a case class
val json: JsValue = Json.parse(jsonStr)
val personResult = json.validate[Person]

personResult match {
  case JsSuccess(person, _) =>
    println(s"Name: ${person.name}, Age: ${person.age}")
  case JsError(errors) =>
    println(s"Errors: $errors")
}

Output:

Name: Alice, Age: 30

Example 2

Parsing JSON Array:

Scala
import play.api.libs.json._

// Sample JSON array string
val jsonArrayStr = """[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 35}]"""

// Parse JSON array
val jsonArray: JsValue = Json.parse(jsonArrayStr)
val peopleResult = jsonArray.validate[List[Person]]

peopleResult match {
  case JsSuccess(people, _) =>
    people.foreach(person => println(s"Name: ${person.name}, Age: ${person.age}"))
  case JsError(errors) =>
    println(s"Errors: $errors")
}

Output:

Name: Alice, Age: 30

Name: Bob, Age: 35

Example 3

Accessing JSON fields directly:

Scala
import play.api.libs.json._

// Sample JSON string
val jsonStr = """{"name": "Alice", "age": 30}"""

// Parse JSON
val json: JsValue = Json.parse(jsonStr)

// Access JSON fields directly
val name = (json \ "name").as[String]
val age = (json \ "age").as[Int]

println(s"Name: $name, Age: $age")

Output:

Name: Alice, Age: 30

Example 4

Handling missing fields:

Scala
import play.api.libs.json._

// Sample JSON string with a missing field
val jsonStr = """{"name": "Alice"}"""

// Parse JSON
val json: JsValue = Json.parse(jsonStr)

// Access JSON fields with error handling for missing fields
val nameResult = (json \ "name").validate[String]
val ageResult = (json \ "age").validateOpt[Int]

nameResult match {
  case JsSuccess(name, _) =>
    println(s"Name: $name")
  case JsError(errors) =>
    println(s"Name Error: $errors")
}

ageResult match {
  case JsSuccess(Some(age), _) =>
    println(s"Age: $age")
  case JsSuccess(None, _) =>
    println("Age not provided")
  case JsError(errors) =>
    println(s"Age Error: $errors")
}

Output:

Name: Alice

Age not provided

These examples demonstrate various ways to parse JSON in Scala using the play-json library, including parsing into case classes, handling arrays, accessing fields directly, and handling missing fields.



How to parse JSON in Scala?

In this article, we’ll explore how to parse JSON in Scala. JSON parsing is crucial for handling data interchange between systems. We’ll cover efficient methods and libraries available in Scala for JSON parsing. By the end, you’ll have a clear understanding of parsing JSON in Scala for seamless integration into your projects.

Similar Reads

To Import the necessary libraries:

import play.api.libs.json._...

How to Parse the JSON string?

val jsonString = “””{“key”: “value”}”””val json: JsValue = Json.parse(jsonString)...

Access JSON fields:

You can access fields directly using the ‘\’ operator:...

Handle missing fields:

You can handle missing fields by using validate or validateOpt:...

Example of parse JSON in Scala

Example.1...