我正在尝试反序列化JSON。我的根对象具有单个属性“ en.pickthall”。我正在使用动态类型读取我的JSON。我以为我可以取消“。” 在属性中,因为它是本地JSON文件,但是必须有某种方法可以访问此类属性
var result = App_Code.FileIOHelper.ReadFromDefaultFile("ms-appx:///Assets/en.pickthall.json");
dynamic stuff = JsonConvert.DeserializeObject(result);
foreach(var x in stuff.(en.pickthall)) //Tried this intellisense didn't like it
{
}
C#没有任何引用标识符的方式。如果不是有效的标识符,则唯一的选择就是反射。
但是,您的JSON解串器返回的对象可能会更改了标识符,以使其可在C#中使用-您可能希望枚举所有属性,以检查情况是否如此。具有索引器的动态对象也可能是一种解决方案(例如允许stuff["en.pickthall"]
)。
另一种选择是更改序列化程序映射属性的方式。例如,Newtonsoft.Jsoft允许您使用进行自定义IContractResolver
。.
以这种方式用C#替代更简单是很容易的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句