【发布时间】:2016-02-19 22:45:42
【问题描述】:
假设我有一个像这样的简单 JSON 数组:
[
{
"name": "Alex",
"age": 12
},
{
"name": "Peter"
}
]
请注意,第二个对象没有 age 字段。
我正在使用 JSON4S 来查询 JSON(使用 for-comprehension 样式来提取值):
for {
JArray(persons) <- json
JObject(person) <- persons
JField("name", JString(name)) <- person
JField("age", JString(age)) <- person
} yield new Person(name, age)
对我来说问题是这个表达式会跳过第二个对象(缺少age 字段的那个)。我不想跳过这些对象;我需要得到它作为null 或更好的None。
This answer 提供了一个示例,说明如何使用自定义提取器处理 JSON 中的 null 值,但它仅在字段存在且其值为 null 时才有效。
【问题讨论】: