Json Type Provider: анализирует допустимые ошибки Json
У меня есть следующий блок кода в моем REPL
#r "../packages/FSharp.Data.2.2.1/lib/net40/FSharp.Data.dll"
open FSharp.Data
[<Literal>]
let uri = "http://www.google.com/finance/option_chain?q=AAPL&output=json"
type OptionChain = JsonProvider<uri>
Когда я запускаю его, FSI возвращается
Ошибка 1 Тип провайдера
'ProviderImplementation.JsonProvider'
сообщил об ошибке: не удается прочитать образец JSON из'http://www.google.com/finance/option_chain?q=AAPL&output=json'
: Неверный JSON, начинающийся с символа 1, фрагмент =
----{expiry:{y:2
-----json =
------{expiry:{y:2015,m:5,d:8},expirations: [{y:2015,m:5,d:8},{y:2015,m:5,d:15},
Этот JSON действует в соответствии с двумя другими сайтами. Это баг в ТП?
1 ответ
Решение
Вывод не является допустимым JSON, потому что некоторые ключи не заключены в кавычки.
{expiry:{y:2015,m:5,d:8},expirations:[{y:2015,m:5,d:8},{y:2015,m:5,d:15},{y:2015,m:5,d:22},{y:2015,m:5,d:29},{y:2015,m:6,d:5},{y:2015,m:6,d:12},{y:2015,m:6,d:19},{y:2015,m:6,d:26},{y:2015,m:7,d:17},{y:2015,m:8,d:21},{y:2015,m:10,d:16},{y:2016,m:1,d:15},{y:2017,m:1,d:20}],
puts:[{cid:"43623726334021",s:"AAPL150508P00085000",e:"OPRA",p:"-",c:"-",b:"-",a:"-",oi:"-",vol:"-",strike:"85.00",expiry:"May 8, 2015"},
...