Невозможно десериализовать текущий объект JSON (например, {"name": "value"} - PullRequest
0 голосов
/ 26 апреля 2020

В этой строке выдается ошибка

Невозможно десериализовать текущий JSON объект (например, {"name": "value"})

Из других посты, которые я собираю, я не должен помещать это в список. Однако, это работало хорошо для меня, пока я не добавил поле avgPx.

  1. Как правильно добавить эту информацию в мой список?
  2. Нужно ли в моем списке типа <OrderRecord> включать все поля, возвращаемые JSON?
List<OrderRecord> orderRecord_Single = new List<OrderRecord>();//define and set to null
OrderRecord_Single = JsonConvert.DeserializeObject<List<OrderRecord>>(orderString);

Это один случай моей jsonstring. На нем есть скобки.

"[{\"orderID\":\"5dcc6560-9672-958d-010b-7d18c9d523ab\",\"account\":1024235,\"symbol\":\"ETHUSD\",\"timestamp\":\"2020-04-26T18:21:05.703Z\",\"clOrdID\":\"\",\"side\":\"Buy\",\"price\":194.95,\"orderQty\":1,\"ordStatus\":\"New\",\"text\":\"ZT\",\"transactTime\":\"2020-04-26T18:21:05.703Z\",\"avgPx\":null}]"
public class OrderRecord
{
    [JsonProperty("orderID")]
    public string orderID { get; set; }
    [JsonProperty("symbol")]
    public string symbol { get; set; }
    [JsonProperty("side")]
    public string side { get; set; }
    [JsonProperty("price")]
    public string price { get; set; }
    [JsonProperty("orderQty")]
    public string orderQty { get; set; }
    [JsonProperty("ordStatus")]
    public string ordStatus { get; set; }
    [JsonProperty("transactTime")]
    public string transactTime { get; set; }
    [JsonProperty("timestamp")]
    public string timestamp { get; set; }
    [JsonProperty("avgPx")]
    public string avgPx { get; set; }
}

1 Ответ

0 голосов
/ 26 апреля 2020

Ошибка возникает из-за попытки десериализации объекта JSON в массив JSON. Таким образом, вы должны предоставить массив JSON как на входе. Для заданного JSON добавьте скобки [] к первой и последней строке JSON для создания действительного массива JSON:

var jsonString = "[{\"orderID\":\"8d853505-248d-e515-ee17-ddcd24b5fecb\",\"account\":1024235,\"symbol\":\"XBTUSD\",\"timestamp\":\"2020-04-20T18:25:07.601Z\",\"clOrdID\":\"\",\"side\":\"Buy\",\"price\":6885.5,\"orderQty\":8700,\"ordStatus\":\"Filled\",\"text\":\"ZT\",\"transactTime\":\"2020-04-20T18:22:11.135Z\",\"avgPx\":6885.5}]"
...