Kullanılması Bu SO benim ilk soru ... yani) F # Veri: JSON Ayrıştırıcı. JsonExtensions
Genellikle tüm soru) = beni, onları bir sürü inanmak ( chat rooms yılında techout) = kesinlikle karar vermeyin.Son zamanlarda, RosettaCode hakkında konuşuyoruz. Ve bazı görev kodlarını tamamlayabileceğimi merak ettim F #
Bunlardan biri JSON.
Olası çözümlerden biri "F # Data: JSON Parser" kullanımıdır. Bu yüzden benim sorum bununla bağlantılı.
Bu kod
iyi çalışıyor:open FSharp.Data
open FSharp.Data.JsonExtensions
type Person = {ID: int; Name:string}
let json = """[ { "ID": 1, "Name": "First" }, { "ID": 2, "Name": "Second" }]"""
json |> printfn "%s"
match JsonValue.Parse(json) with
| JsonValue.Array(x) ->
x |> Array.map(fun x -> {ID = System.Int32.Parse((x?ID).ToString()); Name = (string x?Name)})
| _ -> failwith "fail json"
|> Array.iter(fun x -> printfn "%i %s" x.ID x.Name)
Baskı:
[ { "ID": 1, "Name": "First" }, { "ID": 2, "Name": "Second" }]
1 "First"
2 "Second"
Ama
{ID = System.Int32.Parse((x?ID).ToString()); Name = (string x?Name)}
iyi görünmüyor.
This Ben JsonExtensions hakkında
okumak ama
{ID = (x?ID.AsInteger()) ; Name = (x?Name.AsString()) }
kullandığımda derleme hatası alıyorsunuz:
alan, yapıcı ya da "AsInteger"
tanımlı değil
Alan, yapıcı veya "AsString" n Nasıl JsonExtensions kullanmak: ot şey, soru "açık FSharp.Data.JsonExtensions"
Yani aracılığıyla erişilebilirlik bakın yani, Garip
Evet, aynı hatalar aynı –
http://i.stack.imgur.com/l9Rz5.png –
Bu çok kafa karıştırıcı. F # + VS hangi sürümünü kullanıyorsunuz? –