C# 如何从JSON中获取字段,并将JSON的其余部分作为字节[]发送

C# 如何从JSON中获取字段,并将JSON的其余部分作为字节[]发送,c#,json,deserialization,json-deserialization,C#,Json,Deserialization,Json Deserialization,我有下面的JSON { "Guid": "abc", "Data": { "Json": [[1,42],[2,2]] } 我想把它放在这里面: public class TempData { public string Guid { get; set; } public Json Data { get; set; } } public class Json { public byte[] Data { get; set; } }

我有下面的JSON

{   
   "Guid": "abc", 
   "Data": {
      "Json": [[1,42],[2,2]]
 }
我想把它放在这里面:

public class TempData
{
    public string Guid { get; set; }
    public Json Data { get; set; }
}

public class Json
{
    public byte[] Data { get; set; }
}
使用下面的代码,我得到字节[]数据null,有人能告诉我为什么吗

TempData data = JsonConvert.DeserializeObject<TempData>(jsonString);
TempData data=JsonConvert.DeserializeObject(jsonString);

致以最诚挚的问候

在JSON和序列化类之间的映射中有两个错误:

JSON包含一个属性
Data
,它是一个属性
JSON
的对象,而类包含一个属性
Data
,它有一个属性
Data
。要解决此问题,请按如下方式修改该类:

public class TempData
{
    public string Guid { get; set; }
    public DataData { get; set; }
}

public class Data
{
    public byte[] Json { get; set; }
}
Json文档中的Json属性包含一个int数组。无法将其序列化为字节数组。有两种可能的选择:

将Json更改为包含正确的字节数组:

{   
   "Guid": "abc", 
   "Data": {
      "Json": [1,42,2,2]
 }
或者修改类,使其具有字节数组数组:

public class TempData
{
    public string Guid { get; set; }
    public DataData { get; set; }
}

public class Data
{
    public byte[][] Json { get; set; }
}

字节[]
包含什么?您的源数据是字符串,而不是字节,JSON甚至不表示整数列表。它将包含JSON,它可以包含任何内容,这只是一个示例{“Guid”:“abc”,“Data”:{“Json”:[{“source”:“asd”,“target”:“asd”}]}}`我通过将数据发送到对象中解决了这个问题。现在我需要找到一种将其转换为字节[]的方法,因为JSON.net的JObject没有使用可序列化的atribute“标记”。