私は自分のAPIのいくつかのメソッドを使用できるようにするDLLを開発しました。すべてうまく動作していますが、今はlinqに問題があります。特に、私は通常、オブジェクトのリストにAPIから返されたすべての結果を格納します。だから私はそれを繰り返し、各項目を分けることができます。今、私はこのクラスを持っている:linqでネストされたリストのオブジェクトのリストを作成できません
public class Agent
{
public int id { get; set; }
public string name { get; set; }
}
public class RootObject
{
public List<Agent> agent { get; set; }
}
は、私はこのようなJSONをデシリアライズ:
var obj = JsonConvert.DeserializeObject<RootObject>(responseText);
return obj.Select(o => o.agent).ToList();
今私は、JSONが正しく「原因はAgent
のリストですが、私はこの方法を使用することはできませんデシリアライズすることができますオブジェクトのリストを返す:
return obj.Select(o => o.agent).ToList();
.Select
は赤い下線、およびコンパイラが教えてくれている:
代わりに私が使用している場合Agent.RootObjectが選択
の定義が含まれていません:var obj = JsonConvert.DeserializeObject<List<RootObject>>(responseText);
すべての戻りラインは赤で下線が引かれている:
は、システムを変換できません。 .Collections.Generic.List in System.Collections.Generic.List
どうすればこの問題を解決できますか?
'obj'が単一の' RootObject'であれば 'obj.agent.Select(o => o.company)'が必要ですが、クラス定義のどこにでも 'company'が表示されません –
ごめんなさい。エージェントクラスの定義を見ると、それはリストであることがわかります – IlDrugo
@IlDrugoその場合は 'obj.Agent'を使用してください。 –