这是我在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