4

unirest.ioを使用して C# で API を呼び出しています。次の JSON 応答を取得します ( response.Body として)

{
    "persons": [{
        "id": "a010",
        "name": "Joe",
        "subjects": [
            "Math",
            "English"
        ]
    },
    {
        "id": "b020",
        "name": "Jill",
        "subjects": [
            "Science",
            "Arts"
        ]
    }]
}

次のように、これをカスタム クラス オブジェクトにマップしようとしました。

HttpRequest request = Unirest.get(API_V1_URL).header("accept", "application/json");
HttpResponse<string> response = request.asString();
var serializer = new JavaScriptSerializer();
persons = serializer.Deserialize<Persons>(response.Body);

ただし、 person.infos = NULLを設定することで常に通過します。

私のカスタムクラス

public class Persons
{
    public PersonInfo[] infos;
}

public class PersonInfo
{
    public string id;
    public string name;
    public string[] subjects;
}

このような JSON を .Net クラス オブジェクトに正しくマップする方法を教えてください。

4

1 に答える 1

5

代わりPersonsに渡すDeserialize<T>Vendors

persons = serializer.Deserialize<Persons>(response.Body);

プロパティの名前を変更

public PersonInfo[] infos;

public PersonInfo[] persons;

さらに、自動プロパティを使用することをお勧めします。すなわち

public PersonInfo[] persons{get;set;}
于 2014-01-03T16:05:43.397 に答える