【发布时间】:2017-03-16 00:42:08
【问题描述】:
如何处理 JSON 文件中的缺失数据?使用数据列表,您可以简单地使用地图功能。但是对象呢
假设我有样本数据:
{
"Person":{
"FirstName":"John",
"LastName":"Doe",
"Age": 42,
"Address": {
"Street": "SomeStreet",
"City" : "Some City"
}
}
}
我的实际数据如下:
{
"Person":{
"FirstName":"John",
"Age": 42
}
}
我不知道如何将地址设为可选:
type personJson = JsonProvider<"Data/personSample.json">
let personData = testJson.Load("Data/personData.json")
let address = personData.Person.Addres // gives an exception
也尝试将其转换为可选项失败 让 p = personData.Person.Address |> Option.ofObj
System.Exception:由于先前的错误,操作无法完成 'JsonProvider<...>.Address' 类型在 2,35 处没有 'null' 作为正确值
我无法想象我应该为每个缺少数据的文件更改代码。
那么我该怎么做才能解决这个问题呢?
【问题讨论】:
-
简短的回答是您将
SampleIsList设置为true并给出所有可能形状的json 对象列表。 -
我的印象是 SampleIsList 在我的情况下不起作用。正如我的问题中提到的,我不使用列表,而只使用 1 个对象。添加 SampleIsList 后,请求 Address 对象仍然会导致异常: System.Exception: Property 'Address' not found at '/Person': {"FirstName":"John","Age":42,"Address":空}