2016-11-16 42 views
2

给人一种JSON得到键和值作为字符串

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

我想产生两个字符串:

  • 一个与像钥匙:

    "id", "name"

  • 和一个值

    1, "one"

似乎微不足道,但到目前为止,我甚至不知道从哪里开始。我是否应该用一些JSON解析器解析为JSONValue,然后获取密钥?它是否给予了可以给出的JSON的动态特性?或者只需要一个REGEX路线?任何其他想法?

+1

如果您的文档具有标准结构,那么JSON类型提供程序相当不错。 –

+1

JSON解析器总是比regex推荐,因为它比regex更灵活。 – AlphaQ

+0

问题是,我不知道我将如何得到这两个字符串,一旦他们被解析。 –

回答

4

如果你想在.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 –

相关问题