问题描述
在 C# 应用程序中,我在某个时候接收二进制数据,这些数据被序列化为具有结构的 JObject
{
"0": 255,"1": 216,"2": 255,"3": 224,"4": 0,"5": 16,.
.
.
"12345" : 255
}
,所以它总是 {"index" : value}。 编辑:json 只是一个例子,JObject 实际上有 12345 个 JToken 类型的孩子,其中每个 JToken 都有名称“索引”和值 JValue(实际二进制值)。
我需要将此 JObject 反序列化为 byte[]
,仅存储值。除了循环遍历对象并将值一个一个地存储在字节数组中之外,还有什么聪明的方法可以做到这一点?
解决方法
您要查找的代码是:
jObject.Properties().Select(p => (byte) p.Value).ToArray();
但我还有两个问题:
-
您真的需要将其从二进制转换为 JSON 吗?不能直接反序列化成对象吗?
-
这显然是一个数组,为什么你的 JSON 不是这样的数组:
[ 255,216,... ]