0

我正在尝试处理将对象反序列化为我的设计类的任务。我将收到的字符串如下所示:

{nodename:"node1", version:"v1", PARM1:"p1", PARM2:"p2" ,…, PARAMN:"pn"}. 

据我了解,我需要一个用于这个 json 字符串的类,比如 Node 是我的类名。我知道我可以通过在我的类 Node.js 中添加两个字段来轻松处理节点名和版本。但是参数集呢?因为这个字符串中的参数数量是动态的并且不受我控制,所以我不知道如何设计我的类。请对此有所了解。或者你认为这是不可能的?提前致谢

4

2 回答 2

1

您可以使用 List 等通用集合

    公共类 ResultObject
    {
        公共字符串节点名 { 获取;放; }
        公共字符串版本{获取;放; }
        公共列表<字符串> 参数 { 获取;放; }
    }

如果参数名称和类型不是问题,请使用上面的代码。如果您希望 Param1、Param2、... ParamN 作为您的参数,则:

    公共类 ResultObject
    {
        公共字符串节点名 { 获取;放; }
        公共字符串版本{获取;放; }
        公共字典<字符串,字符串> 参数 { 获取;放; }
    }

然后您可以使用 var x = Params["Param1"] 等键访问 Params。

于 2013-09-03T12:35:20.820 回答
0

在代码中表示 json 的最简单方法是反序列化为 aDictionary<string, object>或者Dictionary<string, string>如果您知道所有属性值都是字符串。

根据您的 json 序列化程序,语法可能会有所不同。这是使用 Microsoft JavaScriptSerializer.

var serializer = new JavaScriptSerializer();

var dict = serializer.Deserialize<Dictionary<string, string>>(jsonString);

Console.WriteLine(dict["nodename"]); // "node1"
Console.WriteLIne(dict["PARM1"]); // "p1"

您还可以使用该Dictionary.Keys属性来获取 json 字符串中所有属性的附加信息。

于 2013-09-03T03:39:12.887 回答