десериализовать двоичный файл json base64 в .net с помощью DataContractJsonSerializer - PullRequest
3 голосов
/ 02 августа 2010

Эй, у меня проблема с десериализацией base64 json обратно в объект .net с помощью wcf datacontract ....

У меня есть это для десериализации:

public static T FromJSON<T>( this string json )
{
    using ( MemoryStream ms = new MemoryStream(ASCIIEncoding.Default.GetBytes(json)) )
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));

        return (T)ser.ReadObject(ms);
    }
}

и ..У меня есть это в моем модельном классе ...

[DataMember]
[Column(AutoSync = AutoSync.Always, DbType = "rowversion not null", CanBeNull = false, IsDbGenerated = true, IsVersion = true, UpdateCheck = UpdateCheck.Never)]
public byte[] timestamp { get; set; }

и ... я передаю JSON, как так ...

[{"id":"1","type":"H","date_issued":"\/Date(1286856000000)\/","date_ceu":"\/Date(1603166400000)\/","current":true,"timestamp":"AAAAAAAAD7M="}]

и по какой-то причинепросто отказывается просто поместить этот base64 обратно в байт [] ... должен быть какой-то другой способ заставить его работать ...

также, к примеру, я использую ASP.NET MVC и Html.Скрытый (...), который сериализует двоичный файл в base64 для начала ....

спасибо!

1 Ответ

2 голосов
/ 03 августа 2010

Я решил проблему с помощью библиотеки JSON.NET ... сработало сразу.

http://json.codeplex.com/

List<..> result = JsonConvert.DeserializeObject<List<...>>( list );
...