scala 使用 Gson解析JSON格式的字符串
时间: 2024-05-12 13:19:03 浏览: 240
1. 首先需要引入Gson库,可以在build.gradle文件中添加如下依赖:
```
implementation 'com.google.code.gson:gson:2.8.5'
```
2. 创建Gson对象:
```scala
import com.google.gson.Gson
val gson = Gson()
```
3. 调用fromJson方法解析JSON字符串:
```scala
val jsonString = """{"name": "Tom", "age": 18}"""
val person = gson.fromJson(jsonString, Person::class.java)
// Person类定义
data class Person(val name: String, val age: Int)
```
4. 解析结果:
```scala
println(person.name) // 输出:Tom
println(person.age) // 输出:18
```
注意:在定义Person类时,需要使用data class关键字,以便Gson能够正确解析JSON字符串。
相关问题
scala 2.2 gson解析json转成任意bean代码
在Scala 2.12中使用Gson解析JSON并将其转换为任意Bean对象的示例代码如下:
```scala
import com.google.gson.Gson
case class Person(name: String, age: Int)
val json = """{"name": "Alice", "age": 30}"""
val gson = new Gson()
val person: Person = gson.fromJson(json, classOf[Person])
println(person)
```
这个示例代码将JSON字符串`{"name": "Alice", "age": 30}`解析为一个`Person`对象,然后打印出来。在这个例子中,我们使用了Gson的`fromJson`方法来将JSON解析为一个`Person`对象。我们还使用了`classOf`来获取Person类的实际类型。
如果你想解析任意类型的Bean对象,可以使用Gson的`TypeToken`类来获取泛型类型的实际类型。例如,如果你想解析一个`List[Person]`类型的JSON字符串,可以按照下面的方式使用`TypeToken`:
```scala
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
case class Person(name: String, age: Int)
val json = """[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 40}]"""
val gson = new Gson()
val personType = new TypeToken[List[Person]] {}.getType()
val persons: List[Person] = gson.fromJson(json, personType)
println(persons)
```
这个示例代码将JSON字符串`[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 40}]`解析为一个`List[Person]`对象,然后打印出来。在这个例子中,我们使用了Gson的`fromJson`方法来将JSON解析为一个`List[Person]`对象。我们还使用了`TypeToken`来获取泛型类型`List[Person]`的实际类型。
希望这可以帮助到你!
scala 2.12,gson解析json转成T泛型代码,以及pom依赖
下面是一个使用Gson解析JSON并将其转换为泛型T的Scala 2.12代码示例:
```scala
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
case class Person(name: String, age: Int)
val json = """{"name": "Alice", "age": 30}"""
val gson = new Gson()
val personType = new TypeToken[Person] {}.getType()
val person: Person = gson.fromJson(json, personType)
println(person)
```
这个示例代码将JSON字符串`{"name": "Alice", "age": 30}`解析为一个`Person`对象,然后打印出来。在这个例子中,我们使用了Gson的`fromJson`方法来将JSON解析为一个`Person`对象。我们还使用了`TypeToken`来获取泛型类型`Person`的实际类型。
下面是在Maven项目中使用Gson的POM依赖:
```xml
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
```
希望这可以帮助到你!
阅读全文