我找不到一个可以解决我要问的问题,所以我继续创建了这个问题。
我有一个json从我们的UI回复给我,我可以将它转换为一个没有任何问题的对象,直到我点击这一行:
\"lang\":{\"en-US\":{\"name\":\"AS Test Assembly Activity\",\"description\":\"Activity to test assembly activities\"}}
我的问题是“en-US”它似乎是一个带有'name'和'description'字段的类。如何安全地将“en-US”转换为对象?这可以是动态的,也可以是文化代码的设置。
我可以通过将其更改为此来转换它:
\"lang\":{\"culture\":\"en-US\",\"name\":\"AS Test Assembly Activity\",\"description\":\"Activity to test assembly activities\"}}
但是现在UI声明他们可以使用它,但更喜欢它与原始json内联。
有什么想法吗?
由于
编辑:(我的意思是'转换'en-US“到一个班级?)
当我将其转换为类时,它应该看起来很简单:
public class CustomActivityLanguageData
{
public string Name { get; set; }
public string Description { get; set; }
public string Culture { get; set; }
}
但文化是为我上面提到的'修复'添加的。在我发布的原始json上,看起来“en-US”将是一个类,就像上面代码中的'CustomActivityLanguageData'类是一个类(在json中的btw'CustomActivityLanguageData'=='lang')
似乎“en-US”附加了字段,就像一个类,但它不会转换。
Double Edit:为了进一步说明这一点,看起来这就是这个类最终的样子:
public class Lang
{
en-US cultureCode {get;set;}
}
public class en-US
{
public string name {get;set;}
public string description {get;set;}
}
希望能更好地解释一下。
答案 0 :(得分:1)
你需要意识到你在这里得到的东西。您收到了一个字典(在JSON中,它被称为'对象')。字典中的一个关键词是“lang”。 “lang”键的值本身就是一个字典。它可能有很多键,可能用于不同的语言,但是你只收到一个名为“en-US”的键。并且该键的值也是具有两个键“name”和“description”的字典。
通常情况下,我希望你能收到多个词典,不仅仅是“en-US”,还有其他语言的键,如法语,德语或日语;然后,您将选择最适合您的应用程序的那个,并从中提取“名称”和“描述”键。