C# 将字节[]中的JSON转换为对象

C# 将字节[]中的JSON转换为对象,c#,arrays,json,C#,Arrays,Json,我有一个256大小的缓冲区,它接收数据并“存储”为字节数组。包含的数据是JSON对象,但我不知道如何操作它们。 我必须处理的最糟糕的事情是JSON对象是堆叠的。第一个JSON对象包含多个JSON对象,每个JSON对象包含另一个JSON对象。第一个字节数组包含第一个对象,最后一个字节数组包含第一个对象的右括号 我应该如何获得我想要的数据并进一步操作它们?我想在分离JSON对象后将每个对象保存到SQL数据库中。是否最好实现一个列表或数组来保存字节数组,还是有更好的解决方案?首先将字节数组设置为字符串

我有一个256大小的缓冲区,它接收数据并“存储”为字节数组。包含的数据是JSON对象,但我不知道如何操作它们。 我必须处理的最糟糕的事情是JSON对象是堆叠的。第一个JSON对象包含多个JSON对象,每个JSON对象包含另一个JSON对象。第一个字节数组包含第一个对象,最后一个字节数组包含第一个对象的右括号

我应该如何获得我想要的数据并进一步操作它们?我想在分离JSON对象后将每个对象保存到SQL数据库中。是否最好实现一个列表或数组来保存字节数组,还是有更好的解决方案?

首先将字节数组设置为字符串。这也取决于编码。现在,您应该得到一个表示为字符串对象的普通JSON。您只需查看字符串变量及其包含的内容,就可以确保JSON现在看起来“良好”,这对于一开始使用的字节数组来说并不容易


之后,您可以尝试将上述步骤中的JSON字符串转换为对象。

如果字节数组是一个用UTF-8编码的字符串,则使用将其转换为字符串

byte[] jsonBytes = GetJsonBytes();

string jsonString = Encoding.UTF8.GetString(jsonBytes);
例如,现在可以使用将其转换为DTO类型

MyDto myDtoObj = JsonConvert.DeserializeObject<MyDto>(jsonString);
MyDto myDtoObj=JsonConvert.DeserializeObject(jsonString);

为什么要将json存储为
字节[]
而不是字符串或自定义对象?通常,如果可以获得完整的json,可以将其作为类插入并使用OOP方法简单的google搜索将为您提供大量.NET json库选项。缓冲区是如何填充的?基于的方法可能吗?如果我将每个字节数组转换为字符串,我将有多个字符串,因为我的数据超过一个字符串所能容纳的长度(如果我正确,字符串值最多可以容纳256个字符)。@Rapsoulhs string可以容纳256个以上的长度characters@RapsoulhsJSON是字符串。若要将其发送到服务器,请将其转换为字节数组并通过套接字发送。在接收器上,再次解析整个字节数组,将其转换为字符串,然后使用我的答案中的最后一个链接。