以字符串形式获取键和值

get keys and values as a string

给出一个 json

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

我想生成两个字符串:

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

如果您想在 .NET 上解析 JSON,市面上确实有一个首选解决方案 - Newtonsoft 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.