使用 ArraySegment 类到 JSON 对象

Ale*_*nov 4 c# arrays json json.net c#-4.0

我正在努力解决这个问题,

我想使用 ArraySegment 传输 Json 对象

我的 JSON 数据采用这种格式

{"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}
Run Code Online (Sandbox Code Playgroud)

我已经使用这个工具来创建指定的类,如

public class Employee
{
    public string firstName { get; set; }
    public string lastName { get; set; }
}

public class RootObject
{
    public List<Employee> employees { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我像这样将数据插入到对象中

var objectToSerialize = new RootObject();
objectToSerialize.items = new List<Employee> 
          {
             new Item { firstName="abc", lastName="xyz"},
             new Item { firstName="pqr", lastName="stu"}
          };
Run Code Online (Sandbox Code Playgroud)

但是现在我遇到了问题,我不知道如何使用 websocket 发送它

通过这个

ArraySegment<byte> max = new ArraySegment<byte>(, , );
await webSocket.SendAsync(max, WebSocketMessageType.Text, true, CancellationToken.None);
Run Code Online (Sandbox Code Playgroud)

All*_*der 6

您需要先将 objectToSerialize 序列化为字节缓冲区

var data = JsonConvert.SerializeObject(objectToSerialize);
var encoded = Encoding.UTF8.GetBytes(data);
var buffer = new ArraySegment<Byte>(encoded, 0, encoded.Length);
await webSocket.SendAsync.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
Run Code Online (Sandbox Code Playgroud)