給人一種JSON得到鍵和值作爲字符串
{ "id": 1, "name": "one" }
我想產生兩個字符串:
一個與像鑰匙:
"id", "name"
和一個值
1, "one"
似乎微不足道,但到目前爲止,我甚至不知道從哪裏開始。我是否應該用一些JSON解析器解析爲JSONValue,然後獲取密鑰?它是否給予了可以給出的JSON的動態特性?或者只需要一個REGEX路線?任何其他想法?
給人一種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。
真棒,正是我正在尋找。非常感謝@ scrwtp –
如果您的文檔具有標準結構,那麼JSON類型提供程序相當不錯。 –
JSON解析器總是比regex推薦,因爲它比regex更靈活。 – AlphaQ
問題是,我不知道我將如何得到這兩個字符串,一旦他們被解析。 –