F#JsonValue AsArray在哪里?

时间:2017-04-03 14:00:16

标签: arrays json f#

我有:

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'

即使我在这里关注这个例子:

F# Data: JSON Parser

在“使用JSON扩展”部分中。所以,显然我错了。但是在哪里?

2 个答案:

答案 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"

希望这很有帮助!

欢呼