0

JSON 文字列を .NET ビュー モデル クラスに逆シリアル化しようとすると、エラーが発生します。エラーは「入力文字列の形式が正しくありませんでした」です。デシリアライズに使用しているコードは次のとおりです。

string stats = "{\"Total\":1059,\"Completed\":87,\"TotalUnique\":238,\"CompletedUnique\":51,\"AverageTime\":\"21:28:03.3070000\",\"Results\":[[{\"Image\":{\"Id\":\"514d7259-9b25-48cb-ac92-b4641afbcb14\",\"Title\":\"Hildagarde Schadenfreude \",\"Url\":\"http://eentertainmentcms.blob.core.windows.net/content/deddfa80-7aa0-4fcb-bfdd-39e74040864f\",\"ImageAlt\":\"Image 3 Alt\",\"ImageCredit\":\"Image 3 Credit\",\"PercentChosen\":0.0},\"Count\":5},{\"Image\":{\"Id\":\"37dff9f1-8390-4e63-b67a-436e7f2748b2\",\"Title\":\"Mary Louise Parker\",\"Url\":\"http://eentertainmentcms.blob.core.windows.net/content/c9570b24-1c0c-45a3-a1ce-43369e7f3a9f\",\"ImageAlt\":\"Image 4 Alt\",\"ImageCredit\":\"Image 4 Credit\",\"PercentChosen\":0.0},\"Count\":6},{\"Image\":{\"Id\":\"421431b4-d4ff-46ae-9241-df2dc4062c05\",\"Title\":\"Sarah Jessica Parker\",\"Url\":\"http://eentertainmentcms.blob.core.windows.net/content/975b3bf4-d17a-4548-8167-59415d51e0c6\",\"ImageAlt\":\"Image 5 Alt\",\"ImageCredit\":\"Image 5 Credit\",\"PercentChosen\":0.0},\"Count\":8}],[{\"Image\":{\"Id\":\"81459ca5-d76d-4655-b620-b30b7a980b10\",\"Title\":\"Claire Danes\",\"Url\":\"http://eentertainmentcms.blob.core.windows.net/content/712dd313-a08f-472a-a8e4-50cc1c150b2a\",\"ImageAlt\":\"Image 3 Alt\",\"ImageCredit\":\"Image 3 Credit\",\"PercentChosen\":0.0},\"Count\":7},{\"Image\":{\"Id\":\"de7b9131-4b0d-4c07-8f6e-b6fe3c34eef4\",\"Title\":\"Lea Michelle\",\"Url\":\"http://eentertainmentcms.blob.core.windows.net/content/bc20ffee-f41d-450d-bf64-f4e754a465c1\",\"ImageAlt\":\"Image 4 Alt\",\"ImageCredit\":\"Image 4 Credit\",\"PercentChosen\":0.0},\"Count\":12}]]}"
JavaScriptSerializer JSS = new JavaScriptSerializer();
ComparisonGameResults model = JSS.Deserialize<ComparisonGameResults>(stats);

そして、ここに私のViewModelがあります:

public class ComparisonGameResults
{
    public int Total { get; set; }
    public int Completed { get; set; }
    public int TotalUnique { get; set; }
    public int CompletedUnique { get; set; }
    public string AverageTime { get; set; }
    public Result[][] Results { get; set; }
}

public class Result
{
    public ResultImage Image { get; set; }
    public int Count { get; set; }
}

public class ResultImage
{
    public string Id { get; set; }
    public string Title { get; set; }
    public string Url { get; set; }
    public string ImageAlt { get; set; }
    public string ImageCredit { get; set; }
    public int PercentChosen { get; set; }
}

文字列とまったく同じ構造を使用して、有効な JSON に基づいてビュー モデル クラスを作成しました。何かアドバイス?

4

1 に答える 1

0

PercentChosenJSON では浮動小数点値 (0.0) のように見えますがint、View Model では として宣言されています。

またはPercentChosenとして宣言してみてください。decimalfloat

于 2013-04-27T01:00:36.783 に答える