c#.net fastJSON将JSON字符串复制到Object

时间:2017-01-23 16:42:52

标签: c# .net json fastjson

编辑:将JSON字符串更新为有效的JSON 我正在尝试使用fastJSON将JSON字符串转换为c#中的类。

这是我的字符串(我把所有内容都删掉了,所以只留下了我遇到的麻烦)

{
"apps": {
    "App Name 1": {
        "label": "AppNam1",
        "versions": [
            {
                "app_version": "4.7",
                "application": "appname1"
            }
        ]
    },
    "App Name 2": {
        "label": "App Name 2",
        "versions": [
            {
                "app_version": "1.0",
                "application": "appname2"
            }
        ]
    }
  }
}

现在,使用fastJSON我试图将其转换为以下模型:

[Serializable()]
public class AppsRoot
{
    public List<AppDetail> apps;
}

[Serializable()]
public class AppDetail{    
    public string label;
    public List<AppVersions> versions;
}

然而,由于几个原因(至少,这就是为什么我认为它不起作用)这不起作用: - 首先,应用程序:{}包含应用程序列表。但是,fastJSON不会将此视为列表。可能是因为为了成为一个清单,它周围必须有括号? (就像版本一样) - 其次,AppName1和AppName2是动态密钥。如果可能的话,我怎样才能使fastJSON以某种方式将其分配给属性?

这是我执行的代码:

fastJSON.JSON.ToObject<AppsRoot>(myjsonstring)

它只返回一个空的AppsRoot对象。

仅供参考:如果我只是将JSON用于包含标签的单个应用程序并执行此操作:

fastJSON.JSON.ToObject<AppDetail>(myjsonstring-part)

然后它确实有效。我返回带有版本列表的AppDetail。

希望有人可以帮助我。我使用fastJSON的原因是因为btw的性能,但我对替代方案持开放态度。

0 个答案:

没有答案