解析 JSON 文件的一部分并查看数据

Parsing out a portion of a JSON file and seeing the data

我找到了这个 (我缩短了文件字符串)。我想知道如何在 FSI window?

中显示来自 json 文件的实际数据
let soilTest = JsonValue.Load("c:\,,,soiltest.json")
let query soilTest=
    let node = JObject.Parse soilTest
    node.SelectToken "person[0].name" |> string

这里是 json 文件的开头:

 {
      "person": [
        {
          "name": "John Doe",
          "date": "December 1, 2015",
    .....

我查看了 Mark Seemann 提供的 link,了解如何从 json 文件中获取数据并显示在控制台中。
但是当把

Console.WriteLine(name)

我收到此警告:

 warning FS0020: This expression should have type 'unit', but has type 'string'. Use 'ignore' to discard the result of the expression, or 'let' to bind the result to a name.

val query : soilTest:string -> unit

尝试 |> 在 console.writeline 末尾忽略,我得到 val 查询:soulTest:string -> unit

你如何从这一点做一个 let 语句来绑定数据?

soilTestJsonValue 类型,但您试图将其解析为 string,因此出现错误。请根据您的环境调整路径,否则这对我有用:

let soilTest = JsonValue.Load(@"c:\tmp\test.json")
let qry (soilTest:JsonValue) = 
    let data = JObject.Parse (soilTest.ToString()) 
    data.SelectToken "person[0].name" |> string

qry soilTest
//val it : string = "John Doe"

可能有更好的工作方式。 Json 和 xml 是我存在的祸根...
编辑: 例如您可以直接访问属性,如下所示:

let soilTest = JsonValue.Load(@"c:\tmp\test.json")  
soilTest.["person"].[0].["name"].AsString()
//val it : string = "John Doe"