我有一个像这样存储在数据库中的 JSON 字符串:
{
"Error": "Lol",
"ErrorDate": "2016-05-13T10:43:27.6365795Z",
"Application": "Business",
"UserName": "Josh",
"TraceSession": "moo"
}
表中每个项目的 JSON 字符串都不同。在我的应用程序中,我想将其反序列化为一个对象,但由于 JSON 始终不同,我无法创建模型。
目前我有这个:
var jObject = JsonConvert.DeserializeObject(FieldNames);
我认为这可行,但现在我需要遍历属性以获取键 名称和值。我试过这个:
// For each property in our oject
foreach (var key in jObject.GetProperties())
{
// Create a list
var list = new List<string>();
list.Add(key.GetValue());
// Add our substitution
email.AddSubstitution($"--{ key.ToUpper() }--", list);
}
但它失败了,因为
'object' does not contain a definition for 'GetProperties'
有谁知道我该如何解决这个问题?
A JObject本质上是一个字典。您可以像这样遍历键/值:
class Program
{
static void Main(string[] args)
{
const string json = "{ " +
"\"Error\": \"Lol\", " +
"\"ErrorDate\": \"2016-05-13T10:43:27.6365795Z\", " +
"\"Application\": \"Business\", " +
"\"UserName\": \"Josh\", " +
"\"TraceSession\": \"moo\" " +
" }";
var jobj = JObject.Parse(json);
foreach (var prop in jobj)
{
Console.WriteLine("Key: {0}, Value: {1}", prop.Key, prop.Value);
}
}
}
我是一名优秀的程序员,十分优秀!