【发布时间】:2021-07-02 13:31:24
【问题描述】:
我正在尝试使用 Json 类型提供程序来创建类型并遍历列表。但是,我还需要访问每个项目的序列化 json。
这就是我所拥有的
#r "nuget: FSharp.Data"
#r "nuget: System.Text.Json"
open FSharp.Data
open System.Text.Json
type Users = JsonProvider<"""{"users":[{"id":1, "name": "John"}, {"id":2, "name": "Paul"}]}""">
let data = Users.GetSample().Users
let printProduct (id:int, userJson: string) =
printfn "%i %s" id userJson
let returnIdandJson() =
data |> Seq.map(fun x-> (printProduct (x.Id, JsonSerializer.Serialize x)))
returnIdandJson()
打印出来
1 {"JsonValue":{"Tag":3,"IsString":false,"IsNumber":false,"IsFloat":false,"IsRecord":true,"IsArray":false,"IsBoolean":false,"IsNull":false,"_Pri:false,"IsNull":false,"_Print":"{\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022John\u0022\r\n}"}}
2 {"JsonValue":{"Tag":3,"IsString":false,"IsNumber":false,"IsFloat":false,"IsRecord":true,"IsArray":false,"IsBoolean":false,"IsNull":false,"_Pri:false,"IsNull":false,"_Print":"{\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Paul\u0022\r\n}"}}
我想要的是
1 {"id":1, "name": "John"}
2 {"id":2, "name": "Paul"}
有没有办法可以从 JsonValue 访问和序列化内部列表项?
谢谢
【问题讨论】:
标签: f# f#-interactive f#-data