我有一个具有许多属性的 JSON 对象,我正在通过 jQuery.ajax() 提交给 C# Web 服务 - 它看起来像这样:
var obj = {};
obj.LanguageCode = 1031;
obj.Gender = { 'Geschlecht': 'Mann' };
obj.City = { 'Stadt': 'Berlin' };
...
一些属性,如性别和城市,存储我想映射到键值对的本地化/翻译提示和响应。我试过以不同的方式格式化 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,还是我坚持使用字典?
最佳答案
看起来你需要一组 KeyValuePair
对象,而不是一个(即使你的集合只有一个项目) - 这就是字典的全部,一个周围有一些助手的集合.
但就我个人而言,我建议构建一个实际的类来代表您的值(value)观,更好地组织它 - 更冗长一点,但我认为这是值得的。
// 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/