Один из способов - перейти к http://json2csharp.com/,, вставить свой Json и нажать «GO».
Результат будет таким (я установил заглавные буквы):
public class Result {
public string Company { get; set; }
public string City { get; set; }
public string State { get; set; }
}
public class RootObject {
public int Version { get; set; }
public string Query { get; set; }
public int Begin { get; set; }
public int End { get; set; }
public int TotalResults { get; set; }
public int PageNumber { get; set; }
public Result[] Results { get; set; }
}
Вставьте это в ваше приложение.
Тогда ваш POST-метод может выглядеть так:
[WebInvoke(Method = "POST", UriTemplate = "")]
public HttpResponseMessage Add(RootObject root) {
// do something with your root objects or its child objects...
return new HttpResponseMessage(HttpStatusCode.Created);
}
И вы закончили с этим методом.
Другим методом является использование новых JsonValue и JsonArray, представленных в Web API, тогда как вам не нужны RootObject и Result.
Просто используйте ваш POST-метод:
[WebInvoke(Method = "POST", UriTemplate = "")]
public HttpResponseMessage Add(JsonValue json) {
JsonArray arr = (JsonArray) json["results"];
JsonValue result1 = arr[0];
var company = result1["company"]; // results in "ABC Company Inc."
return new HttpResponseMessage(HttpStatusCode.Created);
}
Вы должны получить подсказку ...
Вы можете сделать все это в порядке:
[WebInvoke(Method = "POST", UriTemplate = "")]
public HttpResponseMessage Add(JsonValue json) {
var arr = json["results"];
var result1 = arr[0];
var company = result1["company"]; // results in "ABC Company Inc."
return new HttpResponseMessage(HttpStatusCode.Created);
}