返回Web API c#中字节数组的Json

问题描述 投票:0回答:1

嗨,我开发了一个Web API,其中我在URL中获取一些参数,然后对其进行处理。我使用的协议是Modbus。它返回一个字节数组,作为回报,我想从中获取一些特定的字符串数据。下面是我的代码

  public string GetData(int slaveId, int dataAddress, int registerCount)
    {

        //string hexValue = intValue.ToString("X");
        // Convert the hex string back to the number
        int slaveHex = int.Parse(slaveId.ToString("X"), System.Globalization.NumberStyles.HexNumber);
        int addressHex = int.Parse(dataAddress.ToString("X"), System.Globalization.NumberStyles.HexNumber);
        int countHex = int.Parse(registerCount.ToString("X"), System.Globalization.NumberStyles.HexNumber);


        //serial port settings and opening it
        var serialPort = new SerialPort("COM2", 9600, Parity.Even, 8, StopBits.One);

        serialPort.Open();

        var stream = new SerialStream(serialPort);
        stream.ReadTimeout = 200;
        // send request and waiting for response
        // the request needs: slaveId, dataAddress, registerCount            
        var responseBytes = stream.RequestFunc3(slaveHex, addressHex, countHex);

        // extract the content part (the most important in the response)
        var data = responseBytes.ToResponseFunc3().Data;         

        //Convert a byte array to string
        var stringFromByteArray = System.Text.Encoding.UTF8.GetString(data);
        serialPort.Close();

        return stringFromByteArray;
    }

data包含14个字节的数组

enter image description here

stringFromByteArray返回以下内容>>

"\0�\0�\0�\0\u0016\0\u0017\0\u0018\0\u001a"

您可以在上面看到,返回的字符串与预期的不同。我想要像数据字节数组中的确切值。

我希望它的结果输出在Json response中。如下所示

{
  [0] => "220",
  [1] => "230",
  [2] => "240", 
  [3] => "22",
  [4] => "23",
  [5] => "24",
  [6] => "26",
} 

我该怎么办?任何帮助将不胜感激。

嗨,我已经开发了一个Web API,在其中我要在URL中获取一些参数,然后对其进行处理。我使用的协议是Modbus。它返回一个字节数组,并且返回,我想得到一些...

c# arrays .net asp.net-web-api2
1个回答
0
投票

从更高的角度来看,有几个选项供您选择。

© www.soinside.com 2019 - 2024. All rights reserved.