Boş değerleri kabul etmem gereken ancak eksik özellikleri kullanmam gereken bir kullanım durumum var. Bu Örneğin Çal Framework 2.1.3Oyna Scala Json Missing Property vs Null
üzerindedir: Bu dava sınıf
aşağıdaki kabul ve foo nesne oluşturmak istiyorum daha büyük bir vaka sınıfının bir parçası olabilir
case class Foo(a: Option[String], b: Option[String], c: Option[String])
:
{
"foo" : {
"a" : "blah",
"b" : null,
"c" : "blah"
}
}
Ama bu:
ŞuDava sınıfa JSON okumak için aşağıdaki adres:
val FooReader = (
(__ \ "a").readNullable[Setting] and
(__ \ "b").readNullable[String] and
(__ \ "c").readNullable[String])(Foo)
nasıl FooReader mülkü eksik üzerinde JsError üretmek ancak null adlı izin yapabilirsiniz? Eksik olan JsError eğer '(__ \ "b",)' üretecek
val FooReader = (
(__ \ "a").readNullable[String] and
(__ \ "b").read(Reads.optionNoError[String]) and
(__ \ "c").readNullable[String]
)(Foo)
'Reads.optionNoError [dize]':
Works:. 'val FooReader = ( (__ \ "a") okumak (Reads.optionNoError [dize]) ve (__ \ "b") okuyun (Reads.optionNoError [Dize]) ve (__ \ "c") okuyun (Reads.optionNoError [Dize]) ) (Foo) –
Evet, şimdi benim için çalışıyor:) Foo'nun eşlik eden nesnesi içinde Foo kurmaya çalıştığım zaman kafası karıştığını düşünüyorum. Uygulamayı açık bir şekilde ayarladığım zaman çalışır –
Bir jsonun orijinal nesnedeki tüm alanları içermeyebileceği bir kullanım durumum var, ve orijin alanlarının ayarlanmasının yanı sıra geçerli olması gereken 'null' olabilecek bazı dize alanları boş. Bunu yapmak için doğrudan bir yol yok gibi görünüyor. – Ashesh