0

私はASP.NETの世界では初めてで、次のことを達成しようとしています。

この形式の API をシリアル化する必要があります

{
    "results": {
        "profile": {
            "firstname": "John,
            "lastname": "Newman",
        },
        "credit": {
             "amount": 30
        }
    }
}

問題は、データをモデル化する方法がわからないことです。他に 2 つのオブジェクト (プロファイルとクレジット) を含む結果オブジェクトが必要です。以下にいくつかのサンプルコードを示します。

public class Results
{

    public class Data {
        public Profile profile { get; set; }
        public Credit credit {get; set; }
    }

    public class Profile {
        public String firstname {get; set; }
        public String lastname { get; set; }
    }

    public class Credit {
        public int amount { get; set; }
    }
}

static void Main(string[] args)
{

Results results= new Results
{
    Data = new Data{
        Profile = new Profile {
            firstname = "John",
            lastname = "Newman"
        },
        Credit = new Credit {
           balance = "30"
        }

    }

};

string json = JsonConvert.SerializeObject(results);

Console.WriteLine(json);

}

表示されるエラーは、「メンバー データを初期化できません。フィールドまたはプロパティではありません。何が間違っていますか?」

4

2 に答える 2

1

これを試して :

   static void Main(string[]args) {
    Base results = new Base() {
        Results = new Results() {               
            profile = new Profile() {
                firstname = "John",
                lastname = "Newman"
            },
            credit = new Credit() {
                amount = 30
            }               
        }
    };

    string json = JsonConvert.SerializeObject(results);

    Console.WriteLine(json);

    Console.ReadLine();
}

public class Base {
    public Results Results {get;set;}
}

public class Results{
    public Profile profile {get;set;}
    public Credit credit {get;set;}

}   

public class Profile{
    public String firstname {get;set;}
    public String lastname {get;set;}
}

public class Credit{
    public int amount {get;set;}
}

Class BaseはResultsクラスをラップして、必要な JSON 構造を取得します。

于 2013-10-23T11:02:37.797 に答える
1

代わりにこれを試してください:

    public class Profile
    {
        public String firstname { get; set; }
        public String lastname { get; set; }
    }

    public class Credit
    {
        public int amount { get; set; }
    }

    public class Result
    {
        public Profile profile { get; set; }
        public Credit credit { get; set; }

    }
    public class Wrapper
    {
        public Result results { get; set; }

    }

    static void Main(string[] args)
    {

        var wrapper = new Wrapper
        {
            results = new Result
            {
                profile = new Profile
                {
                    firstname = "John",
                    lastname = "Newman"
                },
                credit = new Credit
                    {
                        amount = 30
                    }
            }
        };

        string json = JsonConvert.SerializeObject(wrapper);

        Console.WriteLine(json);

    }
于 2013-10-23T10:52:49.063 に答える