我知道有其他地方可以给出这个答案,但我想要实现的更复杂,这是我的反序列化代码:
这是例如json的数据:
data = @"{""ShiftID"":""2"",""EmpName"":""dsdsfs""}";
Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(data);
List<string> list = new List<string>(values.Keys);
// Loop through list
foreach (string k in list)
{
System.Diagnostics.Debug.Print("'{0}', '{1}'", k, values[k]);
}
Run Code Online (Sandbox Code Playgroud)
这将返回ShiftID,2和EmpName,dsdsfs就像你知道的那样!
如果我的json字符串看起来像这样多个值会发生什么:
data = @"{""ShiftID"":""2"",""EmpName"":""dsdsfs""},{""ShiftID"":""4"",""EmpName"":""dsdsfd""}";
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果我的json字符串看起来像多个值会发生什么
data = @"{""ShiftID"":""2"",""EmpName"":""dsdsfs""}, {""ShiftID"":""4"",""EmpName"":""dsdsfd""}";
错误,因为这不是有效的JSON.你可能意味着:
data = @"[{""ShiftID"":""2"",""EmpName"":""dsdsfs""},{""ShiftID"":""4"",""EmpName"":""dsdsfd""}]";
Run Code Online (Sandbox Code Playgroud)
现在您可以反序列化为一个字典数组:
var values = JsonConvert.DeserializeObject<Dictionary<string, string>[]>(data);
foreach (var element in values)
{
foreach (var entry in element)
{
System.Diagnostics.Debug.Print("'{0}', '{1}'",
entry.Key,
entry.Value
);
}
}
Run Code Online (Sandbox Code Playgroud)
甚至更好,定义一个模型来代表你的实体:
public class Employee
{
public string ShiftID { get; set; }
public string EmpName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在反序列化为员工列表:
var employees = JsonConvert.DeserializeObject<Employee[]>(data);
foreach (var employee in employees)
{
System.Diagnostics.Debug.Print("'{0}', '{1}'",
employee.ShiftID,
employee.EmpName
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3902 次 |
| 最近记录: |