以字符串形式获取键和值
get keys and values as a string
给出一个 json
{ "id": 1, "name": "one" }
我想生成两个字符串:
一个按键如下:
"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
显然该示例仅处理平面文档,但使其递归应该相当简单。
如果您确实知道架构,则可以使用类型提供程序或使用 JSON.NET 反序列化 JSON 文档 straight into a record type.
给出一个 json
{ "id": 1, "name": "one" }
我想生成两个字符串:
一个按键如下:
"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
显然该示例仅处理平面文档,但使其递归应该相当简单。
如果您确实知道架构,则可以使用类型提供程序或使用 JSON.NET 反序列化 JSON 文档 straight into a record type.