C# 如何在windows应用商店应用程序中反序列化json对象
这是我的WebAPI方法C# 如何在windows应用商店应用程序中反序列化json对象,c#,json,asp.net-mvc-4,C#,Json,Asp.net Mvc 4,这是我的WebAPI方法 public class EmployeeController : ApiController { employee[] employee = new employee[] { new employee{Employee_Id=1,Employee_Name="Richa",Employee_Address="Noida",Employee_Contact=12567,Employee_Salary=5000}, new empl
public class EmployeeController : ApiController
{
employee[] employee = new employee[]
{
new employee{Employee_Id=1,Employee_Name="Richa",Employee_Address="Noida",Employee_Contact=12567,Employee_Salary=5000},
new employee{Employee_Id=2,Employee_Name="Megha",Employee_Address="Delhi",Employee_Contact=98754,Employee_Salary=5435},
new employee{Employee_Id=3,Employee_Name="Gaurav",Employee_Address="Noida",Employee_Contact=33333,Employee_Salary=4233},
new employee{Employee_Id=4,Employee_Name="Suyash",Employee_Address="Delhi",Employee_Contact=5555,Employee_Salary=2342},
new employee{Employee_Id=5,Employee_Name="Manish",Employee_Address="Noida",Employee_Contact=84576,Employee_Salary=4555},
new employee{Employee_Id=6,Employee_Name="Manish",Employee_Address="Noida",Employee_Contact=84576,Employee_Salary=4555},
new employee{Employee_Id=7,Employee_Name="Ram",Employee_Address="Delhi",Employee_Contact=6456,Employee_Salary=4555},
new employee{Employee_Id=8,Employee_Name="Rajesh",Employee_Address="Gaziyabad",Employee_Contact=8865,Employee_Salary=4555},
new employee{Employee_Id=9,Employee_Name="Deepak",Employee_Address="Hapur",Employee_Contact=34242,Employee_Salary=4555},
new employee{Employee_Id=10,Employee_Name="Naveen",Employee_Address="Gaziyabad",Employee_Contact=86756,Employee_Salary=4555},
new employee{Employee_Id=11,Employee_Name="Rakesh",Employee_Address="Noida",Employee_Contact=8564,Employee_Salary=4555}
};
public IEnumerable<employee> GetAllEmployee()
{
return employee;
}
公共类EmployeeController:ApicController
{
员工[]员工=新员工[]
{
新员工{employee_Id=1,employee_Name=“Richa”,employee_Address=“Noida”,employee_Contact=12567,employee_Salary=5000},
新员工{employee_Id=2,employee_Name=“Megha”,employee_Address=“德里”,employee_Contact=98754,employee_Salary=5435},
新员工{employee_Id=3,employee_Name=“Gaurav”,employee_Address=“Noida”,employee_Contact=33333,employee_Salary=4233},
新员工{employee_Id=4,employee_Name=“Suyash”,employee_Address=“德里”,employee_Contact=5555,employee_Salary=2342},
新员工{employee_Id=5,employee_Name=“Manish”,employee_Address=“Noida”,employee_Contact=84576,employee_Salary=4555},
新员工{employee_Id=6,employee_Name=“Manish”,employee_Address=“Noida”,employee_Contact=84576,employee_Salary=4555},
新员工{employee_Id=7,employee_Name=“Ram”,employee_Address=“德里”,employee_Contact=6456,employee_Salary=4555},
新员工{employee_Id=8,employee_Name=“Rajesh”,employee_Address=“Gaziyabad”,employee_Contact=8865,employee_Salary=4555},
新员工{employee_Id=9,employee_Name=“Deepak”,employee_Address=“Hapur”,employee_Contact=34242,employee_Salary=4555},
新员工{employee_Id=10,employee_Name=“Naveen”,employee_Address=“Gaziyabad”,employee_Contact=86756,employee_Salary=4555},
新员工{employee_Id=11,employee_Name=“Rakesh”,employee_Address=“Noida”,employee_Contact=8564,employee_Salary=4555}
};
公共IEnumerable GetAllEmployee()
{
返回员工;
}
在windows应用商店应用程序中使用上述内容
private HttpClient httpClient;
public TestPage()
{
this.InitializeComponent();
httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:52333/");
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Limit the max buffer size for the response so we don't get overwhelmed
httpClient.MaxResponseContentBufferSize = 266000;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
GetEmployee();
}
private void Rectangle_Tapped(object sender, TappedRoutedEventArgs e)
{
// easingAnimation.Begin();
}
private async void GetEmployee()
{
var response = await httpClient.GetAsync("api/employee");
if (response.IsSuccessStatusCode)
{
var employee = await response.Content.ReadAsStringAsync();
List<Test> result = JsonConvert.DeserializeObject<List<Test>>(employee);
//var emp = JsonArray.Parse(employee);
//var qry = from m in emp
// select new
// {
// Emp_Id = m.GetObject()["Employee_Id"].GetNumber(),
// Emp_Name = m.GetObject()["Employee_Name"].GetString(),
// Emp_Address = m.GetObject()["Employee_Address"].GetString(),
// Emp_Contact = m.GetObject()["Employee_Contact"].GetNumber(),
// Emp_Salary = m.GetObject()["Employee_Salary"].GetNumber()
// };
// employee_details.DataContext = qry;
}
}
}
私有HttpClient HttpClient;
公共测试页()
{
this.InitializeComponent();
httpClient=新的httpClient();
httpClient.BaseAddress=新Uri(“http://localhost:52333/");
httpClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
//限制响应的最大缓冲区大小,这样我们就不会不知所措
httpClient.MaxResponseContentBufferSize=266000;
}
受保护的覆盖无效OnNavigatedTo(NavigationEventArgs e)
{
GetEmployee();
}
私有空心矩形(对象发送器,TappedRoutedEventArgs e)
{
//easingAnimation.Begin();
}
私有异步void GetEmployee()
{
var response=await-httpClient.GetAsync(“api/employee”);
if(响应。IsSuccessStatusCode)
{
var employee=wait response.Content.ReadAsStringAsync();
列表结果=JsonConvert.DeserializeObject(员工);
//var emp=JsonArray.Parse(employee);
//var qry=来自emp中的m
//选择新的
// {
//Emp_Id=m.GetObject()[“员工Id”].GetNumber(),
//Emp_Name=m.GetObject()[“员工名称”].GetString(),
//Emp_Address=m.GetObject()[“员工地址”].GetString(),
//Emp_Contact=m.GetObject()[“员工_联系人”].GetNumber(),
//Emp_Salary=m.GetObject()[“员工工资”].GetNumber()
// };
//employee_details.DataContext=qry;
}
}
}
但所有字段都有默认值,如null和0。
我应该在我的客户端添加来自rest服务的同一类参考员工吗 您的类“Test”应具有与“Employee”类相同的属性:
员工Id、员工姓名、员工地址、员工联系人、,
员工工资
当您从ReadAsStringAsync()检索值时,您将检索字符串,因此该字符串需要在异步调用的字符串中包含Json数据
如果出现以下情况,则需要签入调试器:
var employee = await response.Content.ReadAsStringAsync();
员工有什么价值
如果是,则只需在测试中反序列化:
List<Test> result = JsonConvert.DeserializeObject<List<Test>>(employee);
List result=JsonConvert.DeserializeObject(employee);