将byte []中的JSON转换为object

时间:2017-02-22 08:19:44

标签: c# arrays json

我有一个256大小的缓冲区,用于接收数据和"存储"它们作为字节数组。包含的数据是JSON对象,但我无法弄清楚如何操作它们。 我必须处理的最糟糕的事情是JSON对象是堆叠的。第一个JSON对象包含多个JSON对象,每个JSON对象包含另一个JSON对象。第一个字节数组包含第一个对象,最后一个字节数组包含第一个对象的结束括号。

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

2 个答案:

答案 0 :(得分:1)

首先将convert字节数组转换为字符串。这还取决于编码。现在你应该得到一个表示为字符串对象的普通JSON。你可以确保你的JSON看起来很好"好"现在只是通过查看字符串变量及其包含的内容,使用开头的字节数组就不那么容易了。

之后,您可以尝试convert从上一步到对象的JSON字符串。

答案 1 :(得分:0)

假设字节数组是使用UTF-8编码的字符串,请使用Encoding.GetString(byte[] bytes)将其设置为字符串。

byte[] jsonBytes = GetJsonBytes();

string jsonString = Encoding.UTF8.GetString(jsonBytes);

现在,您可以使用Newtonsoft.Json将其转换为DTO类型。

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