2016-10-24 11 views
1

このエラーメッセージを解決する際に問題があります。私はここでいくつかの他の答えを見ていくつか変更しましたが、私はまだこのエラーが表示されます:現在のJSONオブジェクトを逆シリアル化できません - Newtonsoft

Newtonsoft.Json.JsonSerializationException:現在のJSONオブジェクト(例えば{"name": "value"})を逆シリアル化できません'[Clocker.Models.PeopleLocationForUser]' '型はJSON配列(例えば[1,2,3])を必要とするため正しく型を逆シリアル化する必要があるため、' System.Collections.Generic.List`1と入力してください。

これが私のクラスである:これは、JSONデータの開始である

public static async Task<PeopleLocationForUser> GetPeopleLocationForUser(string UserName, int LocationId) 
{ 
    Uri uri = new Uri(URL + "GetPeopleLocationForUser" + "?username=" + UserName + "&locationid=" + LocationId); 

    HttpClient myClient = new HttpClient(); 
    var response = await myClient.GetAsync(uri); 

    var content = await response.Content.ReadAsStringAsync(); 

    var test = JsonConvert.DeserializeObject<List<PeopleLocationForUser>>(content); 

    //return something when it's working 
    return null; 
} 

{ "結果

namespace Clocker.Models 
{ 
    public class PeopleLocationForUser 
    { 
     string locationPeople { get; set; } 
     public users users { get; set; } 

    } 

    public class users 
    { 
     public int EB_Counter { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public int TATokenValue { get; set; } 
    } 
} 

これはデシリアライズライン上のエラー方法であり、 "、" locationPeople ":" {"" EB_Counter ":101、" FirstName ":" RSS "、" LastName ":" 13.11.1 "、" TATokenValue ":" TS_101_1_RSS_SWIPE "}、{" EB_Counter " "FirstName": "RSS"、 "LastName": "13.11.2"、 "TATokenValue": "TS_102_1_RSS_SWIP E "}、{" EB_Counter ":93、" FirstName ":" RSS "、" LastName ":" 13.7.1 "、" TATokenValue ":" TS_93_1_RSS_SWIPE "}、{" EB_Counter ":94、" FirstName " 「Last Name」:「13.7.10」、「TATokenValue」:「TS_94_1_RSS_SWIPE」}、「EB_Counter」:95、「FirstName」:「RSS」、「LastName」:「13.8.2」、「TATokenValue」、 "TS_95_1_RSS_SWIPE"}、{"EB_Counter":99、 "FirstName": "RSS"、 "LastName": "13.9.2"、 "TATokenValue": "TS_99_1_RSS_SWIPE"}、

これは私のJsonデータそれが到着したときのようになります。

json deserialization error

私はあなたが助けることができると思います。最終的には、このデータをリストに入れてXamarin ListViewで使用できるようにしようとしています。

+0

私の知る限り、それは代わりに、リストの配列をrequieres – McNets

+0

私はあなたがここで解決策を見つけると思う:http://stackoverflow.com/questions/10534576/json-net-deserializing – McNets

+0

@mcNets私はそれを試して、それは改善されませんでした。私の問題はおそらく、クラスが構築される方法と関係していると思われます.Json形式の可能性がありますが、わかりません。 – connersz

答えて

2

あなたがリストを受信して​​いるクラスには、ユーザーの1つのインスタンスのみを期待している、これはクラスがどうあるべきかです:

public class LocationPeople 
{ 
    public int EB_Counter { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string TATokenValue { get; set; } 
} 

public class RootObject 
{ 
    public bool result { get; set; } 
    public List<LocationPeople> locationPeople { get; set; } 
} 

var test = JsonConvert.DeserializeObject<RootObject>(content); 
+0

こんにちは、私はあなたの変更を実装しましたが、私はまだ同じエラーが表示されます。 – connersz

+0

が答えを更新しました。 –

+0

それはありがとう、ありがとう。 – connersz

関連する問題