解析 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 语句来绑定数据?
soilTest
是 JsonValue
类型,但您试图将其解析为 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"
我找到了这个
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 语句来绑定数据?
soilTest
是 JsonValue
类型,但您试图将其解析为 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"