给出一个json
{ "id": 1, "name": "one" }
我想生成两个字符串:
其中一个键有:
"id", "name"
和一个值为
的人 1, "one"
似乎微不足道,但到目前为止我甚至不知道从哪里开始。我应该用一些JSON解析器解析它到JSONValue然后获取密钥?是否有形可以给出JSON的动态特性?或者只是采取REGEX路线?还有其他想法吗?
答案 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。