Xamarin 应用程序 - 如何将 JSON 对象转换为图像,从 Azure SQL DB 读取
Posted
技术标签:
【中文标题】Xamarin 应用程序 - 如何将 JSON 对象转换为图像,从 Azure SQL DB 读取【英文标题】:Xamarin Application - How to convert JSON Object to Image, read from Azure SQL DB 【发布时间】:2021-04-02 06:38:24 【问题描述】:我不确定我的问题是否正确(我的英语...),但情况如下:
-
有一个窗体应用程序
此应用程序将映像作为 byte[] 存储到 AZURE SQL 数据库(列类型“image”)
还有一个 Xamarin 移动应用程序
此移动应用程序想要读取该图像
为此有一个数据模型:
我在我的模型中尝试这个:
public byte[] AppUsers_Logo get; set;
但是出现错误:
Newtonsoft.Json.JsonReaderException 消息=读取字节错误。意外标记:StartObject。路径“[0].AppUsers_Logo.type”。
然后将数据类型更改为object。
namespace MPPCProvisions.Models
public class tbl_AppUsersModel
public string id get; set;
public int AppUsersNumber get; set;
public string AppUsers_FirmaName get; set;
public object AppUsers_Logo get; set;
并尝试阅读... whitch 还可以,但转换.... 不起作用:(
// /////////////////////////////////////////
// read AppUser_Logo from AZURE DB
var appUser = (await App.MobileService.GetTable<tbl_AppUsersModel>().Where(a => a.AppUsersNumber == 1).ToListAsync());
foreach (var item in appUser)
byte[] appUserLogo = ObjectToByteArray(item.AppUsers_Logo);
byte[] ObjectToByteArray(object obj)
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
bf.Serialize(ms, obj);
return ms.ToArray();
也许有人可以帮助我:我必须如何转换这个对象来获取图像?
感谢您的帮助 亚当
【问题讨论】:
你为什么用object而不是byte[]? 另外,通常最好将图像存储在文件系统或 blob 存储中,并仅将路径或 guid 存储在您的数据库中 【参考方案1】:您是否尝试过反序列化您的图像?
JsonConvert.DeserializeObject<byte[]>((string)AppUsers_Logo));
【讨论】:
通过这个解决方案我得到了错误:System.InvalidCastException Message=Specified cast is not valid。 :(以上是关于Xamarin 应用程序 - 如何将 JSON 对象转换为图像,从 Azure SQL DB 读取的主要内容,如果未能解决你的问题,请参考以下文章
Json 到 ListView - 无法将类型转换为 IEnumerable - Xamarin