Web API中如何用System.Text.Json将动态JSON二进制数组转为byte[]?
将JsonElement数组转换为byte[]的解决方案
核心逻辑
已知attachmentContent是JsonElement类型的数组,且数组内元素为0-255范围内的整数,只需遍历数组元素并转换为byte类型,即可得到目标byte[]。
方法一:循环遍历(直观易读)
// 假设已获取到attachmentContent这个JsonElement数组 List<byte> byteList = new List<byte>(); foreach (JsonElement item in attachmentContent.EnumerateArray()) { // 将JSON中的整数转换为byte byteList.Add((byte)item.GetInt32()); } byte[] result = byteList.ToArray();
方法二:LINQ简化写法(简洁高效)
byte[] result = attachmentContent.EnumerateArray() .Select(item => (byte)item.GetInt32()) .ToArray();
可选:添加范围校验
如果需要确保JSON中的数值都在byte的有效范围(0-255)内,可加入校验逻辑:
byte[] result = attachmentContent.EnumerateArray() .Select(item => { int intValue = item.GetInt32(); if (intValue < 0 || intValue > 255) { throw new ArgumentOutOfRangeException(nameof(intValue), "数组元素超出byte类型的取值范围"); } return (byte)intValue; }) .ToArray();
内容的提问来源于stack exchange,提问作者kolaval
相关产品推荐
相关产品推荐

