我使用scala 2.11.8与circe 0.7.0
我使用scalajs与API区分null发送的JSON中不存在的字段和字段.
我正在寻找一种编码为JSON的方法,case class包含Option[T]我将设置None为表示缺失值的字段的scala :
case class Foo(
optionalFieldOne: Option[Int] = 42,
optionalFieldTwo: Option[Int] = null,
optionalFieldThree: Option[Int] = None
)
implicit FooEncoder: Encoder[Foo] = deriveEncoder[Foo]
val test = Foo()
//What the code actually produces
test.asJson.noSpace
//>{"optionalFieldOne": 42,"optionalFieldTwo":null, "optionalFieldThree":null}
//What I would like
test.asJson.noSpace
//>{"optionalFieldOne": 42,"optionalFieldTwo":null}
Run Code Online (Sandbox Code Playgroud)
circe是否提供了任何可能的配置?你知道如何访问它,我已经查看了所有发行说明,github问题和他们的网站文档没有成功.
在这种配置选项不可用的情况下,有人会如何正确实现它?
我有一个 pandas 数据框,我想向其中增量追加行。我的问题是,当尝试发生值时,它们的类型会丢失。这对于'boolean'变得尤其烦人'object'(int成为float仍然是一件坏事,但至少程序的其余部分仍然可以运行,只是效率较低):
data1 = pd.DataFrame()
data1['foo'] = 5
print("*\n",data1.dtypes)
data2 =pd.DataFrame()
data2['bar'] = True
print("**\n",data2.dtypes)
data3 = pd.concat([data1, data2])
print("***\n",data3.dtypes)
data4 = data1.append(data2)
print("****\n",data4.dtypes)
*
foo int64
dtype: object
**
bar bool
dtype: object
***
bar object
foo float64
dtype: object
****
bar object # <-- bool type becomes object
foo float64
dtype: object
Run Code Online (Sandbox Code Playgroud)
您知道如何预防吗?