获取键和值作为字符串

时间:2016-11-16 20:43:18

标签: f# f#-3.0

给出一个json

{ "id": 1, "name": "one" }

我想生成两个字符串:

  • 其中一个键有:

    "id", "name"

  • 和一个值为

    的人

    1, "one"

似乎微不足道,但到目前为止我甚至不知道从哪里开始。我应该用一些JSON解析器解析它到JSONValue然后获取密钥?是否有形可以给出JSON的动态特性?或者只是采取REGEX路线?还有其他想法吗?

1 个答案:

答案 0 :(得分:4)

如果你想在.NET上解析JSON,那么在城里真的有一个解决方案 - 牛顿软件JSON.NET。

我假设您要解析您事先不了解架构的JSON文档。 JSON.NET有一个对象模型,可以用来表示内存中的文档,你可以检查它以产生你想要的输出。

这是一个应该让你前进的样本:

open Newtonsoft.Json
open Newtonsoft.Json.Linq

let json = "{ \"id\": 1, \"name\": \"one\" }"

let rep = JObject.Parse(json)

let names, values = 
    [ for p in rep.Properties() do 
        yield p.Name, p.Value.ToObject<string>() ]
    |> List.unzip

显然,该示例仅处理平面文档,但使其递归应该相当简单。

如果您确实知道架构,则可以使用类型提供程序或使用JSON.NET反序列化JSON文档straight into a record type

相关问题