得到键和值作为字符串
问题描述:
给人一种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。
+0
真棒,正是我正在寻找。非常感谢@ scrwtp –
如果您的文档具有标准结构,那么JSON类型提供程序相当不错。 –
JSON解析器总是比regex推荐,因为它比regex更灵活。 – AlphaQ
问题是,我不知道我将如何得到这两个字符串,一旦他们被解析。 –