当我可以调用第三方api并获取单个类的数据时,所有内容都使用此代码进行反序列化
TheUser me = jsonSerializer.Deserialize(response, typeof(TheUser)) as TheUser
Run Code Online (Sandbox Code Playgroud)
当我尝试反序列化作为数组的JSON响应内容时会出现问题,例如
{
"data": [
{
"name": "A Jones",
"id": "500015763"
},
{
"name": "B Smith",
"id": "504986213"
},
{
"name": "C Brown",
"id": "509034361"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果我在"data"成员周围使用自定义包装类并且该成员需要是类型,我只能使序列化工作List<object>.如果它有类型List<TheUser>我ArgumentException从JsonParser DesializeType方法得到它们.
我原本试图在没有像这样的包装类型的情况下进行序列化
List<TheUser> freinds = jsonSerializer.Deserialize(response, typeof(List<TheUser>)) as List<TheUser>;
Run Code Online (Sandbox Code Playgroud)
但这只会给我一个空集合.当然,我必须能够将数组反序列化为强类型列表.
请帮我.我在哪里缺少信息?我需要反序列化以下JSON字符串.
{ "结果":[{ "系列":[{ "Name": "PWR_00000555", "列": "时间", "最后一个"], "值":["1970-01-01T00:00: 00Z",72]]}]}]}
为此,我定义了我的课程:
public class Serie
{
public Serie()
{
this.Points = new List<object[]>();
}
[JsonProperty(PropertyName = "results")]
public string results { get; set; }
[JsonProperty(PropertyName = "series")]
public string sries { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "columns")]
public string[] ColumnNames { get; set; }
[JsonProperty(PropertyName = "values")]
public List<object[]> Points { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用反序列化器时,它会给出一个例外.
{"无法将当前JSON对象(例如{\"name \":\"value \"})反序列化为类型'System.Collections.Generic.List`1 [InfluxDB.Serie]',因为该类型需要JSON数组(例如[1,2,3])要正确反序列化.\ r …
尝试将JSON字符串(包含多个对象)反序列化为List时遇到一个我不明白的问题。这是JSON。
[
{
"id":2,
"name":"Race 1",
"raceDateTime":"2017-09-02T14:27:39.654",
"raceStartTime":"2017-09-02T14:27:39.654",
"description":"string",
"maxEntries":0,
"currentEntries":0,
"status":0
},
{
"id":3,
"name":"Race 2",
"raceDateTime":"2017-09-02T14:27:39.654",
"raceStartTime":"2017-09-02T14:27:39.654",
"description":"string",
"maxEntries":0,
"currentEntries":0,
"status":0
},
{
"id":4,
"name":"Race 3",
"raceDateTime":"2017-09-02T14:27:39.654",
"raceStartTime":"2017-09-02T14:27:39.654",
"description":"string",
"maxEntries":0,
"currentEntries":0,
"status":0
},
{
"id":5,
"name":"Race 4",
"raceDateTime":"2017-09-02T14:27:39.654",
"raceStartTime":"2017-09-02T14:27:39.654",
"description":"string",
"maxEntries":0,
"currentEntries":0,
"status":0
}
]
Run Code Online (Sandbox Code Playgroud)
然后,我有与我的模型匹配的JSON参数。
public class RaceModel
{
public int id { get; set; }
public string name { get; set; }
public DateTime raceDateTime { get; set; }
public DateTime raceStartTime { get; set; } …Run Code Online (Sandbox Code Playgroud)