【问题标题】:Convert jarray to byte array in C#在 C# 中将 jarray 转换为字节数组
【发布时间】:2014-04-24 00:51:54
【问题描述】:

我需要以某种方式将 jarray 转换为 c# 中的字节数组,以便显示适当的图像。调用是通过 RESTful Web 服务进行的,作为响应,我得到了这个(示例)值:

[255,216,255,224,0,16,74,70,73,70,0,1,1,1,0,96,0,96,0,0,255,219,0,67,0,4,2,3, 3,3,2,4,3,3,3,4,4,4,4,5,9,6,5,5,5,5,11,8,8,6,9,13,11, 13,13,13,11,12,12,14,16,20,17,14,15,19,15,12,12,18,24,18,19,21,22,23,23,23, 14,17,25,27,25,22,26,20,22,23,22,255,219,0,67,1,4,4,4,5,5,5,10,6,6,10,22, 15,12,15,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,255,192,0,17,8,0,67,0,100,3,1,34,0,2,17,1,3,17,1,255,196,0,31,0,0,1,5, 1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9]

注意:我修剪了值的内容,但这是我得到的响应数据。 现在这就是我获得价值的方式:

                foreach (JObject obj in arr)
                {
                    JArray jar = new JArray();                            
                    jar = obj["Thumbnail"] as JArray;
                  
                }

如何将该值转换为byte[],以便在 mvc 视图中显示图像?

【问题讨论】:

  • 你为什么要创建一个新的JArray 然后立即忽略它?
  • @JonSkeet 我把 jarray 放在这里只是为了展示我的尝试,如果有更好的方式来使用数据,请随时告诉我。谢谢
  • 我的意思是你的循环体会更好JArray jar = obj["Thumbnail"] as JArray;。永远不要只为变量赋值,然后立即赋值。

标签: c# asp.net asp.net-mvc c#-4.0 json.net


【解决方案1】:

您只需使用String 方法和LINQ 即可获取您的字节数组:

byte[] bytes = response.Trim('[', ']')
              .Split(',')
              .Select(x => byte.Parse(x))
              .ToArray();

【讨论】:

  • 在我的情况下,我需要输入什么而不是响应?
【解决方案2】:
byte[] bytes = responce.Split(',').Select(s => Convert.ToByte(s, 16)).ToArray();

【讨论】:

    【解决方案3】:
    byte[] byteItems = myJArray.Split(',').Select(z => byte.Parse(z)).ToArray();
    
    
    If you dun't need to split then
    
    byte[] byteItems = myJArray.Select(z => byte.Parse(z)).ToArray();
    

    【讨论】:

    • 您的意思是投射到byte 而不是int
    猜你喜欢
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2014-12-19
    • 2018-01-26
    • 2017-12-11
    • 2018-03-20
    相关资源
    最近更新 更多