如何从JSON获取字段,并将其余的JSON作为byte []发送

时间:2016-02-23 22:53:34

标签: 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; }
}

使用以下代码我得到byte [] Data null,有人可以告诉我为什么吗?

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

祝你好运

1 个答案:

答案 0 :(得分:0)

您的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; }
}