编辑:将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的性能,但我对替代方案持开放态度。