0

デシリアライズ時に json Web サービスでバイト配列の null 値を取得しましたが、ブラウザから呼び出すとバイト配列が返されます。C# コード:

var url = re.DownloadString("XXXX/ListService.svc/lstFooddtl/1/21");

 var a = JsonConvert.DeserializeObject<FooddtlResult>(url);

ai で food_photo の null を取得しました...逆シリアル化すると... c# クラス:

public class photo
    {
        public byte[] food_photo { get; set; }

    }
public class Food
{
    public int food_id { get; set; }
    public string food_name { get; set; }
    public photo[] food_photo { get; set; }
    public string unitcost { get; set; }
}
public class FooddtlResult
{
    public Food[] Result { get; set; }
}
{"Result":[{"food_id":"61","food_name":"Idli","food_photo":[255,216,255,224,0,....217],"unitcost":null}]}
4

1 に答える 1

0

モデルが JSON と一致しません。正しい逆シリアル化のために、Foodクラスを次のように変更します

public class Food
{
    public int food_id { get; set; }
    public string food_name { get; set; }
    public byte[] food_photo { get; set; }
    public string unitcost { get; set; }
}

クラスを削除しphotoます。

それ以外の場合、モデル構造を維持したい場合、正しい JSON は次のようになります。

{"Result":[{"food_id":"61","food_name":"Idli","food_photo":[{"food_photo":[255,216,255,224,0,....217]},{"food_photo":[255,...]},...],"unitcost":null}]}
于 2012-11-08T13:35:28.283 に答える