2017-10-30 17 views
-1

次のコードでは、C#クラスをJsonオブジェクトにシリアライズする必要があります。問題は、私は他のクラスを直列化して一つにすることができないということです。どのように私は1つのjsonファイルにそれらをシリアル化できるように私は他のすべてのクラスに変数データを割り当てる。あなたはちょうどそのデータをインスタンス化する必要があるjsonへのC#クラスのシリアライズ

{ 
    "Number": "DTY28968YU", 
    "RequestedDeviceType": "MHubObd", 
    "DeliveryMethod": "ByHand", 
    "Customer": { 
     "Contacts": { 
     "FirstName": "Mike", 
     "Name": "Paul", 
     "Email": "[email protected]", 
     "City": "San Luis", 
     "Address": "No 10 Highway Road , San Luis", 
     "MobilePhone": "+54000000000" 

     }, 
     "Name": "John Doe", 
     "Number": "PolicyNumber24", 
     "OverrideData": true 
    }, 
    "Vehicle": { 
     "VIN": "VIN004001", 
     "MakeModelCode": "34010", 
     "LicensePlate": "SS 100 GP", 
     "Make": "RANGE ROVER", 
     "Model": "SPORT", 
     "YearOfInitialRegistration": 2016, 
     "MotorType": "Petrol", 
     "OverrideData": true 
    } 
} 
+0

My Jsonファイルは次のように表示されます –

+0

https://stackoverflow.com/questions/6201529/turn-c-sharp-object-into-a-json-string-in-net-4 – Stavm

+1

データを 'data'に代入すると、参照型は' null'になり、直列化されたものは表示されません。あなたが見せて、何が起こるか見るように、データを入れてみるのはどうですか? – crashmstr

答えて

0

を次のようにシリアライズ後

static void Main(string[] args) 
{ 
    Rootobject data = new Rootobject(); 

    var dataString = JsonConvert.SerializeObject(data); 

    File.WriteAllText("Output.json", dataString); 
} 

public class Rootobject 
{ 
    public string Number { get; set; } 

    public string RequestedDeviceType { get; set; } 

    public string DeliveryMethod { get; set; } 

    public Customer Customer { get; set; } 

    public Vehicle Vehicle { get; set; } 
} 

public class Customer 
{ 
    public Contacts Contacts { get; set; } 

    public string Name { get; set; } 

    public string Number { get; set; } 

    public bool OverrideData { get; set; } 
} 

public class Contacts 
{ 
    public string FirstName { get; set; } 

    public string Name { get; set; } 

    public string Email { get; set; } 

    public string City { get; set; } 

    public string Address { get; set; } 

    public string MobilePhone { get; set; } 
} 

public class Vehicle 
{ 
    public string VIN { get; set; } 

    public string MakeModelCode { get; set; } 

    public string LicensePlate { get; set; } 

    public string Make { get; set; } 

    public string Model { get; set; } 

    public int YearOfInitialRegistration { get; set; } 

    public string MotorType { get; set; } 

    public bool OverrideData { get; set; } 
} 

私のJSON出力が見えるはずです。例:

他のクラスもインスタンス化して、シリアル化が機能します。

+0

ここでr.Customerはどこですか? –

+0

@ Carlos.Net:申し訳ありませんが、コードは意味がありませんでした。変数名を変更しました。それは今コンパイルする必要があります;-) –

関連する問題