あるC#クラスのプロパティにJSONパラメータを一致させるために[JsonProperty]使用:この種類のオブジェクトに私は(Json.NETを使用して)、次のJSONレスポンスをデシリアライズしようとしているタイプの一覧
[{"pollid":"1", "question":"This is a test", "start":"2011-06-28", "end":"2012-03-21", "category":"Roads", "0":"Yes", "1":"No"} … ]
:
class Poll
{
[JsonProperty("pollid")]
public int pollid { get; set; }
[JsonProperty("question")]
public string question { get; set; }
[JsonProperty("start")]
public DateTime start { get; set; }
[JsonProperty("end")]
public DateTime end { get; set; }
[JsonProperty("category")]
public string category { get; set; }
// PROBLEM AREA
[JsonProperty("0")] // Json parameter names are 0 to 9. How can I 'match' these to the List elements?
public List<string> polloptions { get; set; }
}
リストを作成するときに[JsonProperty]
属性を使用するにはどうすればよいですか? (このリストに含まれるJsonパラメータ名が "0"から "9"であると仮定します)。私は最後の数時間を別の方法で試してみました。 - これは、世話をする
int option;
Poll poll = JsonConvert.DeserializeObject<Poll>(json);
JContainer container = (JContainer)JsonConvert.DeserializeObject(json);
poll.polloptions = container.Where(t => t as JProperty != null)
.Cast<JProperty>().Where(p => int.TryParse(p.Name, out option))
.Select(p => p.Value.Value<string>()).ToList();
最初のステップは、通常通りデシリアライズすることです:一つの選択肢は、この(私はpolloptions
最初のオフ[JsonProperty("0")]
を取った)のような何かをするだろう
感謝
あなたの回答は非常に詳細です。私は今それを実装しようとします。ありがとうございました! – Bataleon
OfType(x => xはT)の代わりにOfType()を使用できます。 –