如何在c#中动态创建JSON对象(来自ASP.NET资源文件)?

Col*_*n M 8 c# asp.net resources json

我需要将资源文件(.resx)中的字符串序列化为JSON对象.资源文件的密钥不断变化,因此我不能只创建一个接受适当值的C#对象.它需要是一个动态的解决方案.我能够遍历文件的键值对,但我需要一种简单的方法将它们序列化为JSON.

我知道我能做到:

Object thing = new {stringOne = StringResource.stringOne; ...}
Run Code Online (Sandbox Code Playgroud)

但是,我宁愿有类似的东西:

Object generic = {}
foreach (DictionaryEntry entry in StringResource) {
    generic.(entry.Key) = entry.Value
}
Run Code Online (Sandbox Code Playgroud)

或者我应该创建一个自定义JSON序列化程序来构造对象零碎(即foreach循环,每个循环附加一部分JSON字符串)?

编辑
我最终写了一个快速的JSON序列化程序,一次构造一个字符串字符串.我不想包含一个完整的JSON库,因为这是JSON对象的唯一用途(至少目前为止).最终,我想要的可能是不切实际的,并且不存在,因为其功能更好地由其他数据结构提供.谢谢你的所有答案!

Phi*_*hil 7

如果你正在使用C#4.0,你应该看看神奇的System.Dynamic.ExpandoObject.它是一个允许您在运行时使用.NET 4.0中的新DLR动态添加和删除属性的对象.是ExpandoObject的一个很好的示例用法.

拥有完全填充的ExpandoObject后,您可以使用其他优秀答案中提到的任何JSON库轻松地序列化它.