反序列化 JSON (Json.NET)
Deserialize JSON (Json.NET)
我在 json 反序列化方面需要一点帮助。我是第一次使用Json,略知一二
我使用网络客户端得到以下字符串:
[{"name": "somename", "data": [[72, 1504601220], [null, 1504601280], ..., [125, 1504605840]]}]
并尝试用
序列化它
JsonConvert.DeserializeObject<TestObject>(jsonstring)
我的 class 看起来像这样:
public class TestObject
{
[JsonProperty(PropertyName = "name")]
public string TargetName { get; set; }
[JsonProperty(PropertyName = "data"]
public List<?????> DataPoints {get; set;}
}
我需要如何设计 class 以获取某种集合中的数据值,以便每个条目都包含括号内的两个值?
感谢您的耐心等待和帮助!
您的数据是包含可为空整数的数组列表(从外观上看)
[JsonProperty(PropertyName = "data"]
public List<int?[]> DataPoints {get; set;}
试试这个网站:http://json2csharp.com/
如果您只有 JSON 纯文本,该网站可以节省您的大量时间。它可以帮助您将其转换为 C# 对象,尽管您仍然需要仔细检查它。
var data = "[{\"name\": \"somename\", \"data\": [[72, 1504601220], [null, 1504601280], [125, 1504605840]]}]";
var obj = JsonConvert.DeserializeObject<List<TestObject>>(data);
public class TestObject
{
[JsonProperty(PropertyName = "name")]
public string TargetName { get; set; }
[JsonProperty(PropertyName = "data")]
public List<int?[]> DataPoints { get; set; }
}
有一些解决方案,C# 7.0 也支持 ValueTuple 例如这个例子。
List<(int? ,int?)> DataPoints { get; set; }
// if it not work try this.
List<List<int?>> DataPoints { get; set; }
如果您的 json 内部数组元素计数等于 2,那么可以假定您使用值元组。
假设它对你有帮助。
我在 json 反序列化方面需要一点帮助。我是第一次使用Json,略知一二
我使用网络客户端得到以下字符串:
[{"name": "somename", "data": [[72, 1504601220], [null, 1504601280], ..., [125, 1504605840]]}]
并尝试用
序列化它JsonConvert.DeserializeObject<TestObject>(jsonstring)
我的 class 看起来像这样:
public class TestObject
{
[JsonProperty(PropertyName = "name")]
public string TargetName { get; set; }
[JsonProperty(PropertyName = "data"]
public List<?????> DataPoints {get; set;}
}
我需要如何设计 class 以获取某种集合中的数据值,以便每个条目都包含括号内的两个值?
感谢您的耐心等待和帮助!
您的数据是包含可为空整数的数组列表(从外观上看)
[JsonProperty(PropertyName = "data"]
public List<int?[]> DataPoints {get; set;}
试试这个网站:http://json2csharp.com/ 如果您只有 JSON 纯文本,该网站可以节省您的大量时间。它可以帮助您将其转换为 C# 对象,尽管您仍然需要仔细检查它。
var data = "[{\"name\": \"somename\", \"data\": [[72, 1504601220], [null, 1504601280], [125, 1504605840]]}]";
var obj = JsonConvert.DeserializeObject<List<TestObject>>(data);
public class TestObject
{
[JsonProperty(PropertyName = "name")]
public string TargetName { get; set; }
[JsonProperty(PropertyName = "data")]
public List<int?[]> DataPoints { get; set; }
}
有一些解决方案,C# 7.0 也支持 ValueTuple 例如这个例子。
List<(int? ,int?)> DataPoints { get; set; }
// if it not work try this.
List<List<int?>> DataPoints { get; set; }
如果您的 json 内部数组元素计数等于 2,那么可以假定您使用值元组。
假设它对你有帮助。