2017-09-04 44 views
-1

我有一個名爲「Exampel.txt」的文本文件。它有以下內容。讀取文件並轉換爲正確類型的字典

{"eks": {"hel" : 0,"gain": [0,1,2,3,4,5, "htj"],"a": "bb" }, "slow": {"animals": {"sealion": "muuh", 1 : "blabla",},"eat": {"1": "straw",2: ["food", "insects", "bacon"]}}} 

內容永遠不會相同,但總是在上述結構中。我怎樣才能讀取這個在C#中的字典?

所以我可以用它就像我在蟒蛇

+0

這是一種名爲Json的數據符號格式,應該使用適當的庫進行分析。 Json.NET是一個廣泛使用的庫,可以將json數據直接映射到類。看到http://json.net – nbokmans

+0

也許你應該包括你使用它的python代碼或者你在c#中嘗試過的東西。現在的問題是:我有'輸入',我想*輸出* – EpicKip

+0

這個內容不適合單個字典 –

回答

1

數據似乎是JSON格式做,你可以反序列化同樣有目錄。 喜歡的東西:

Dictionary<string, object> values = 
JsonConvert.DeserializeObject<Dictionary<string, object>>(json); 

在這裏,你的值類型是不固定的,就像它有時的JSONObject/JSONArray /字符串等,在這種情況下,你應該使用字典。

在StackOverflow中有很多例子來獲取值,例如: https://stackoverflow.com/a/24381795/1105291

但是你知道文件及其數據類型的關鍵,我強烈建議創建和使用新的類,而不是Dictionary中的對象。

Nicolas Tyler在https://stackoverflow.com/a/7321505/1105291給出了更好的解釋。

+0

如何訪問值後綴? 像值[「eks」]? –

+0

你確定數據的類型?你會有固定的鑰匙嗎? –

+0

@TobiasMøller,您可能有興趣爲此解析[json as JObject](https://stackoverflow.com/a/17842600/1997232)。 – Sinatr