2016-11-16 68 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 –

相關問題