我有一个具有众多属性的JSON对象,我正在通过jQuery.ajax()提交给C#Web服务-看起来像这样:
var obj = {};
obj.LanguageCode = 1031;
obj.Gender = { 'Geschlecht': 'Mann' };
obj.City = { 'Stadt': 'Berlin' };
...
一些属性(例如Gender和City)存储了我想映射到KeyValuePair的本地化/翻译的提示和响应。我曾尝试过以其他方式格式化Javascript,但是只有当数据类型为Dictionary时,数据才能通过-当数据类型为KeyValuePair时,它将无法工作。例如:
private Dictionary Gender { get; set; } // works: Gender[0] == {[Geschlecht,Mann]}
private KeyValuePair City { get; set; } // doesn't work: City == {[,]}
我可以根据需要使用Dictionary,因为它可以工作,但是KeyValuePair似乎更合适且更干净。您可以将Javascript对象映射到KeyValuePairs,还是我迷上使用Dictionary?
最佳答案
看起来您需要一个KeyValuePair
对象的集合,而不是一个对象(即使您的集合只有一个项目)-这就是一个Dictionary的全部,一个包含一些辅助对象的集合。
但就我个人而言,我建议您构建一个实际的类来表示您的价值观,使其更好地进行组织-稍微冗长一些,但我认为这是值得的。
// C#
public class LocalAndTranslated {
public string Localized { get;set; }
public string Translated { get;set; }
}
// JS
obj.Gender = { Localized: "Geschlecht", Translated: "Man" };
如果您愿意,甚至可以在javascript中定义一个“类”:
var LocalAndTranslated = (function() {
function LocalAndTranslated(localized, translated) {
this.Localized = localized;
this.Translated = translated;
}
return LocalAndTranslated;
})();
obj.Gender = new LocalAndTranslated("Geschlecht", "Man");
关于c# - 将JSON(jQuery)映射到KeyValuePair,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15370358/