這是我在C#和JSON上的第一個小項目。有人問我解析一個JSON文件到以下幾點: 我試圖創建一個Windows形式,其體內會含有一個JSON字符串中的格式如下內容:使用JSON.NET將動態JSON字符串解析爲C#中的字符串
Name of the object
(Label) name of the attribute of the object - (TextBox) editable value
(Label) name of the attribute of the object - (TextBox) editable value
...
我有大約35個屬性json文件中的每個對象和8個對象。總共有大約50種不同的屬性。我搜索了JSON - C# - JSON.NET並閱讀了超過15個問題&的答案。對於像我這樣的初學者來說,答案有一些有價值的信息,但我無法將答案與我的情況聯繫起來。這些是原因:
- 一些答案將JSON字符串轉換成C#對象。因爲我需要對象屬性的「名稱」,所以這個選項並不能解決我的問題。我不知道如何在源代碼中獲取變量的名稱並在Windows窗體中使用它。
- 一些答案將json字符串轉換爲
<Dictionary>
數據結構。我沒有完全意識到字典及其屬性,但根據定義,我認爲,字典將兩個值相互映射。就我而言,3-5個不同的對象可能具有相同的屬性,因此對於一個屬性會有多個值。
除此之外,我見過一個例子是:
var dict = new JavaScriptSerializer().Deserialize<Dictionary<string,object>>(json); var postalCode = dict["postalcode"];
因爲我身邊有50屬性,使用這種方法是不適合我的選擇:逐個使用字段名就像在這個例子中所做的那樣(「postalcode」是引用問題中的示例json對象中的一個屬性)。
乍一看,我想我可能會用我自己的字符串處理來解析它。但我想使用美麗的JSON.NET庫。我有點卡在這裏,不知道如何獲取json對象的屬性名稱,並在windows窗體中使用它的值。我腦海中有一些想法,但不知道如何實施它們。
我可能會將包含8個對象的json字符串解析爲對象數組,每個對象都包含二維字符串數組以獲取其屬性名稱和值。然後在編輯值時將字符串轉換爲浮點數。我需要它們作爲字符串,因爲我想在窗體中使用它們。這是我的解決方案。我該如何繼續?
我有一個對象名稱作爲json字符串開頭的字符串,json格式如下:'{\「name \」:{\「a \」:2,\「b \」:\ 「一個字符串\」,\「c \」:3}}' 這是否重要?由於我有一個額外的行相比你的JSON字符串,這是否意味着我必須做一些比你的答案更多? 而且這也是整個格式。我在json字符串中沒有任何對象。只浮動和一個字符串。 – Varaquilex
@Volkanİlbeyli:我用你給的字符串添加了一個例子。額外的換行符不應該影響解析 – ChaseMedallion
非常感謝。這真的有幫助。 – Varaquilex