我有:
open FSharp.Data
open FSharp.Data.JsonExtensions
[<EntryPoint>]
let testjson argv =
let json = """
{
"KeyValuePairs": "[{\"Key\" : \"one\", \"Value\" : \"1\"},{\"Key\" : \"two\", \"Value\" : \"2\"}]"
}
"""
let info = JsonValue.Parse(json)
let infoarray = info.AsArray()
但是我在最后一行收到错误:
错误52未定义字段,构造函数或成员'AsArray'
即使我在这里关注这个例子:
在“使用JSON扩展”部分中。所以,显然我错了。但是在哪里?
答案 0 :(得分:0)
你试图将JsonValue
本身视为一个数组 - 它不是,它是一个对象。您似乎可能希望将KeyValuePairs
属性视为数组。所以试试这个:
let keyValuePairs = info?KeyValuePairs.AsArray()
答案 1 :(得分:0)
这是一个古老的问题,但我会为有需要的人留下答复。
错误是当KeyValuePairs被视为数组而不是字符串时
let json = """ {"KeyValuePairs": "[{\"Key\" : \"one\", \"Value\" : \"1\"},{\"Key\" : \"two\", \"Value\" : \"2\"}]"} """
let info = JsonValue.Parse(json)
let infoarray = info?KeyValuePairs.AsString()
let newinfo = JsonValue.Parse infoarray
printfn "%A" (newinfo.[0]?Key.AsString()) // prints "one"
希望这很有帮助!
欢呼