Đây là câu hỏi đầu tiên của tôi về SO ... vì vậy đừng đánh giá đúng =)Dữ liệu F #: Trình phân tích cú pháp JSON. Sử dụng JsonExtensions
Thông thường tất cả các câu hỏi của tôi đều được công bố trong số chat rooms (tin tôi, rất nhiều người trong số họ =)).
Gần đây, chúng tôi đang nói về số RosettaCode. Và tôi tự hỏi để bổ sung một số mã nhiệm vụ cho F #
Một trong số đó là JSON.
Một trong các giải pháp có thể là sử dụng "Dữ liệu F #: Trình phân tích cú pháp JSON". Vì vậy, câu hỏi của tôi được liên kết với nó.
Mã này hoạt động tốt:
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)
In:
[ { "ID": 1, "Name": "First" }, { "ID": 2, "Name": "Second" }]
1 "First"
2 "Second"
Nhưng nó
{ID = System.Int32.Parse((x?ID).ToString()); Name = (string x?Name)}
không nhìn tốt.
This Tôi đọc về JsonExtensions,
nhưng khi tôi sử dụng
{ID = (x?ID.AsInteger()) ; Name = (x?Name.AsString()) }
tôi nhận được biên dịch lỗi:
Các lĩnh vực, xây dựng hoặc "AsInteger" không được định nghĩa
Trường, hàm tạo hoặc "AsString" là n ot định nghĩa
Kỳ lạ thay, điều là tôi thấy khả năng tiếp cận thông qua "FSharp.Data.JsonExtensions mở"
Vì vậy, câu hỏi: Làm thế nào để sử dụng JsonExtensions?
Có, lỗi giống nhau –
http://i.stack.imgur.com/l9Rz5.png –
Điều này rất khó hiểu. Bạn đang sử dụng phiên bản F # + VS nào? –