我正在寻找一个将字符串化的 JSON 解析为对象的C# (.NET)库。
对我来说,问题Newtonsoft.Json.JsonConvert
在于你总是需要一个具体的类型来进行反序列化:
SomePredefinedType bla = JsonConvert.DeserializeObject<SomePredefinedType>(stringifiedJson);
因此,我以许多不再使用的课程结束。
类 SomePredefinedType 在该行中使用一次,并且不再使用。
当然导航会更好,你可以像这样调用属性:
string name = bla.Name;
string age = bla.Age;
在Java中,我使用了 org.json,其中的反序列化如下所示:
JSONObject jsonObject = new JSONObject(stringifiedJson)
导航要求您知道 JSON 结构是什么。但这始终是事实(否则我怎么能创建SomePredefinedType
课程?)
jsonObject.getString("Name");
jsonObject.getString("Age");
问题是:
C# 有 org.json 吗?我不喜欢 Newtonsoft.Json。
我喜欢这种匿名解析的方式。
编辑: 好的,我倾向于在我的帖子中使用简化的示例,因为我不喜欢人们发布一堆代码。我喜欢在基础上说话,这就是我发布简单代码的原因。
这是我无法以简单的方式实现的,就像使用 org.json 一样:
// Here not using any object, just as answers below stated I could:
dynamic jsonProviders = JsonConvert.DeserializeObject(stringifiedJson);
foreach (dynamic jsonProvider in jsonProviders)
{
// Fetch provider
SMSProvider provider = db.SMSProviders.SingleOrDefault(p => p.SMSProviderId == jsonProvider.SMSProviderId); // What the hell do I use here? thats an error
CheckIfExists(provider);
provider.Order = jsonProvider.Order;
}