json配列をオブジェクトに変換しようとするとエラーが発生します。私はこのように見えるオブジェクトを作成した。このことからjson配列からC#オブジェクトを作成
{
"error":"0",
"result":{
"activities":{
"1":{
"activity_id":"15803",
"activity_id_name":"Ashtanga vinyasa",
"schedule":{
"1":{
"available":"30",
"start":"09:00:00"
}
}
},
"2":{
"activity_id":"15804",
"activity_id_name":"Yin/Yang",
"schedule":{
"1":{
"available":"30",
"start":"10:30:00"
}
}
},
"3":{
"activity_id":"15805",
"activity_id_name":"Stress relief",
"schedule":{
"1":{
"available":"30",
"start":"20:00:00"
}
}
}
},
"json_code":"2"
},
"id":null
}
:
私はこのような複数の層を持つJSON配列を持つnamespace LesRooster.Models
{
public class JsonGroup
{
public string Error { get; set; }
public List<Results> Result { get; set; }
public string Id { get; set; }
}
public class Results
{
public Activities YogaActivities { get; set; }
public int JsonCode { get; set; }
}
public class Activities
{
public int ActivityId { get; set; }
public string ActivityIdName { get; set; }
public Schedule LesSchedule { get; set; }
}
public class Schedule
{
public int Available { get; set; }
public DateTime Start { get; set; }
}
}
私はオブジェクトに配列を追加しよう
JsonGroup jgroup = JsonConvert.DeserializeObject<JsonGroup>(JsonArrayCode);
次のエラーが表示されます。
現在のJSONオブジェクトを逆シリアル化できません(例: タイプにはJSON配列が必要です(例:[1,2,3])。 を正しく非直列化します。
これを解決する方法はありますか? mvc5アプリケーションのビューで渡すのは簡単なので、オブジェクトとして保持したいと考えています。
私はこれを検索しようとしましたが、私が見つけたすべての解決策は1次元json配列用です。
APIのドキュメントを次のように私はルックスからJSON配列を要求:
json_code integer
Constant value: 2
activities hash
{
index : {
activity_id: integer
activity_id_name: string
schedule: hash
{
index : {
available: integer
start: time
}
}
}
}
エラーはまさにその通りです。 JSONには、*オブジェクト*を含むプロパティ 'result'があります。プロパティーには、より多くのプロパティを束ねた' activities'プロパティがあります。それは配列ではないので、それをどのようにして1に逆シリアル化するのですか? 'activities'を辞書に逆シリアル化することもできますし、独自のコンバータを記述してそのプロパティを扱うこともできます。 –
JSONメッセージにはコレクションはありませんが、DTオブジェクトにはコレクションがあります。 – eocron