C# Websockets 将序列化列表发送到 javascript

Posted

技术标签:

【中文标题】C# Websockets 将序列化列表发送到 javascript【英文标题】:C# Websockets send serialized list to javascript 【发布时间】:2020-09-14 15:16:30 【问题描述】:

您好,我有一个 websockets 服务器,它从 C# 服务器向 javascript 客户端发送消息(使用 JavaScriptSerializer 序列化的列表)

我得到了想要的输入,但我无法访问列表中给定项目的值。

例如,我想像这样获取 ID 值:

function onMessage(evt) 
    JSON.parse(evt.data);
    writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data + '</span>' + evt.data[1].id + evt.data.id);
    websocket.close();

var users = LoadTables();
string output = new JavaScriptSerializer().Serialize(users);
session.Send(output);

输出(id 未定义):

【问题讨论】:

【参考方案1】:

那是因为您没有使用已解析的数据。

您需要访问已使用JSON.parse 解析的数据:

function onMessage (evt) 
  let parsedData = JSON.parse(evt.data)
  // ...
  console.log(parsedData[1].id) // It should be 2 according to your output screenshot


【讨论】:

谢谢你,摇滚!它说 2 .如何现在显示整个数据?因为当我尝试解析数据时它显示RESPONSE: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] 那是因为它是一个转换成字符串的对象。您需要访问对象的特定属性。 我只是使用循环?

以上是关于C# Websockets 将序列化列表发送到 javascript的主要内容,如果未能解决你的问题,请参考以下文章

Websockets:从NodeJS websocket服务器到带有WebSocketSharp的C#客户端的多个响应

如何在 asp.net core 中使用 websockets

关闭时 WebSockets 错误

如何使用 WebSockets 将多个文件发送到服务器?

C# xml 反序列化不会将子元素提取到列表中

将 JavaScript 通过 websockets 发送的最后一个字符剥离到 Python