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