给出一个 json
{ "id": 1, "name": "one" }
Run Code Online (Sandbox Code Playgroud)
我想产生两个字符串:
一个带有如下键的:
"id", "name"
和一个有价值观的人
1, "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
Run Code Online (Sandbox Code Playgroud)
显然,该示例仅处理平面文档,但使其递归应该相当简单。
如果您确实知道架构,则可以使用类型提供程序或使用 JSON.NET 将 JSON 文档直接反序列化为记录类型。