JSON をオブジェクトに変換するときにエラーが発生します。Fiddler を介して JSON を取得できるので、Web API に問題はないと思います。
これは私が持っているエラーです:
{"現在の JSON オブジェクト (例: {\"name\":\"value\"}) を型 'System.Collections.Generic.List`1[MvcMobile.WebAPI.Model.Person]' にデシリアライズできません。 \r\nこのエラーを修正するには、JSON を JSON 配列 ([1,2,3] など) に変更するか、逆シリアル化された型を変更して、 JSON オブジェクトから逆シリアル化できる通常の .NET 型 (たとえば、整数のようなプリミティブ型ではなく、配列やリストのようなコレクション型ではない) JsonObjectAttribute を型に追加して、JSON から逆シリアル化することもできますobject.\r\nPath 'BusinessEntityID'、行 1、位置 30."}
これはJSONです:
{"$id":"1", "BusinessEntityID":1,"PersonType":"EM","NameStyle":false,"Title":null,
"FirstName":"Ken", "MiddleName":"J","LastName":"Sánchez","Suffix":null,
"EmailPromotion":0,"AdditionalContactInfo":null,"Demographics":"0",
"rowguid":"92c4279f-1207-48a3-8448-4636514eb7e2",
"ModifiedDate":"2003-02- 08T00:00:00","Employee":null}
そして、これはコードです:
HttpResponseMessage resp = client.GetAsync("http://localhost:8080/api/person/GetPerson/" + id).Result;
resp.EnsureSuccessStatusCode();
var result = resp.Content.ReadAsAsync<IEnumerable<Person>>().Result;
Entity Framework では、次の 2 つのオプションを設定しました。
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
JSON に問題があるのは、1 つのエンティティしか返されないためでしょうか? または、[]{} が欠落しているものはありますか? それとも、JSON からオブジェクトに移行するためのより良い方法でしょうか?