OK、私は短く具体的にしようとします。私は私は、関連するコードを貼り付けますの下に、これまでのところ(それの短いバージョン、唯一の2つのサンプルを取った)とても良いJSON文字列をC#クラスにデシリアライズ
[{
"$type": "Tfl.Api.Presentation.Entities.Line, Tfl.Api.Presentation.Entities",
"id": "bakerloo",
"name": "Bakerloo",
"modeName": "tube",
"disruptions": [],
"created": "2017-03-16T15:56:01.01Z",
"modified": "2017-03-16T15:56:01.01Z",
"lineStatuses": [
{
"$type": "Tfl.Api.Presentation.Entities.LineStatus, Tfl.Api.Presentation.Entities",
"id": 0,
"statusSeverity": 10,
"statusSeverityDescription": "Good Service",
"created": "0001-01-01T00:00:00",
"validityPeriods": []
}
],
"routeSections": [],
"serviceTypes": [
{
"$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
"name": "Regular",
"uri": "/Line/Route?ids=Bakerloo&serviceTypes=Regular"
}
],
"crowding": {
"$type": "Tfl.Api.Presentation.Entities.Crowding, Tfl.Api.Presentation.Entities"
}
},
{
"$type": "Tfl.Api.Presentation.Entities.Line, Tfl.Api.Presentation.Entities",
"id": "central",
"name": "Central",
"modeName": "tube",
"disruptions": [],
"created": "2017-03-16T15:56:01.01Z",
"modified": "2017-03-16T15:56:01.01Z",
"lineStatuses": [
{
"$type": "Tfl.Api.Presentation.Entities.LineStatus, Tfl.Api.Presentation.Entities",
"id": 0,
"statusSeverity": 10,
"statusSeverityDescription": "Good Service",
"created": "0001-01-01T00:00:00",
"validityPeriods": []
}
],
"routeSections": [],
"serviceTypes": [
{
"$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
"name": "Regular",
"uri": "/Line/Route?ids=Central&serviceTypes=Regular"
},
{
"$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
"name": "Night",
"uri": "/Line/Route?ids=Central&serviceTypes=Night"
}
],
"crowding": {
"$type": "Tfl.Api.Presentation.Entities.Crowding, Tfl.Api.Presentation.Entities"
}
}]
を
:私はこのようになりますパブリックAPIからJSON文字列を取得しています私は json2csharp無料のオンラインサービスから得たC#クラスにこのJSON文字列を逆シリアル化しようとしています。私がこれを達成しようとしている関連するコードは次のとおりです:上記のコメントを読むことができますので、返す前にデータを取得しています。json2csharpによって生成されたクラスは次のようになります。
明らか[DataContract]
public class Disruption
{
[DataMember]
public string type { get; set; }
[DataMember]
public string category { get; set; }
[DataMember]
public string categoryDescription { get; set; }
[DataMember]
public string description { get; set; }
[DataMember]
public string additionalInfo { get; set; }
[DataMember]
public string created { get; set; }
[DataMember]
public List<object> affectedRoutes { get; set; }
[DataMember]
public List<object> affectedStops { get; set; }
[DataMember]
public string closureText { get; set; }
[DataMember]
public bool? isWholeLine { get; set; }
}
[DataContract]
public class LineStatus
{
[DataMember]
public string type { get; set; }
[DataMember]
public int id { get; set; }
[DataMember]
public int statusSeverity { get; set; }
[DataMember]
public string statusSeverityDescription { get; set; }
[DataMember]
public string created { get; set; }
[DataMember]
public List<object> validityPeriods { get; set; }
[DataMember]
public string lineId { get; set; }
[DataMember]
public string reason { get; set; }
[DataMember]
public Disruption disruption { get; set; }
}
[DataContract]
public class ServiceType
{
[DataMember]
public string type { get; set; }
[DataMember]
public string name { get; set; }
[DataMember]
public string uri { get; set; }
}
[DataContract]
public class Crowding
{
[DataMember]
public string type { get; set; }
}
[DataContract]
public class tubeStatusRootObject
{
[DataMember]
public string type { get; set; }
[DataMember]
public string id { get; set; }
[DataMember]
public string name { get; set; }
[DataMember]
public string modeName { get; set; }
[DataMember]
public List<object> disruptions { get; set; }
[DataMember]
public string created { get; set; }
[DataMember]
public string modified { get; set; }
[DataMember]
public List<LineStatus> lineStatuses { get; set; }
[DataMember]
public List<object> routeSections { get; set; }
[DataMember]
public List<ServiceType> serviceTypes { get; set; }
[DataMember]
public Crowding crowding { get; set; }
}
私はちょうどそこ[DataContract]
さんと[DataMember]
年代を追加しました。そして私が間違っているのかのアイデアをお持ちの方は、私はいくつかのnewtonsoft JSONを使用して多くの類似の質問に、見つけたとして、重複をマークしないでくださいChannel9
から例を追ってきた私に
を助けることができますそこから私の例にソリューションを実装することができませんでした
は、なぜあなたはnewtonsoft使用することはできませんか? – fredrik
それは私が傾けることはできません、私はちょうどリンクされた例に従って、私はそれがどのように動作するか、または私の場合、それが動作していない理由を理解したい:) – al1en
あなたはnewtonsoftで動作させることはできません。巨大なdiff ... – fredrik