我需要将资源文件(.resx)中的字符串序列化为JSON对象。资源文件的键值不断变化,因此我不能只创建一个接受适当值的C#对象。它需要成为一个动态的解决方案。我能够遍历文件的键值对,但我需要一种简单的方法将它们序列化为JSON。如何在C#中动态创建JSON对象(从ASP.NET资源文件中)?
我知道我可以做的:
Object thing = new {stringOne = StringResource.stringOne; ...}
但是,我宁愿是这样的:
Object generic = {}
foreach (DictionaryEntry entry in StringResource) {
generic.(entry.Key) = entry.Value
}
或者我应该创建一个自定义JSON序列化是零碎构造对象(即foreach循环,每个循环追加部分JSON字符串)?
编辑
我最后写一个快速的JSON序列在某时刻构造串一个字段。我不想包含整个JSON库,因为这是JSON对象的唯一用途(至少现在是这样)。最终,我想要的可能是不切实际的,并不存在,因为它的功能更适合其他数据结构。尽管感谢所有的答案!
这是我正在寻找,但我需要能够动态地指定字段名称(我知道,奇怪的要求)。我最终编写了一个快速且肮脏的序列化程序,但这是正确的答案。 –
看起来您可以将ExpandoObject强制转换为IDictionary',并且这将允许您在运行时确定字段名称。其中的一个例子就是MSDN链接。但是一个自定义的序列化器可能同样好。 –
Phil
嗯,这是一个很酷的伎俩,也许我会切换它... –