相关疑难解决方法(0)

将JSON数组反序列化为强类型.NET对象

当我可以调用第三方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>ArgumentExceptionJsonParser DesializeType方法得到它们.

我原本试图在没有像这样的包装类型的情况下进行序列化

List<TheUser> freinds = jsonSerializer.Deserialize(response, typeof(List<TheUser>)) as List<TheUser>;
Run Code Online (Sandbox Code Playgroud)

但这只会给我一个空集合.当然,我必须能够将数组反序列化为强类型列表.

c# json.net windows-phone-7 hammock

43
推荐指数
5
解决办法
10万
查看次数

获取"因为类型需要JSON数组(例如[1,2,3])才能正确反序列化"反序列化Json对象时出错

请帮我.我在哪里缺少信息?我需要反序列化以下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 …

c# serialization json json.net

4
推荐指数
2
解决办法
3万
查看次数

C#反序列化JSON到列表

尝试将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)

c# json json.net

0
推荐指数
1
解决办法
4572
查看次数

标签 统计

c# ×3

json.net ×3

json ×2

hammock ×1

serialization ×1

windows-phone-7 ×1