簡體   English   中英

無法反序列化當前的 JSON object(例如 {“name”:“value”}

[英]Cannot deserialize the current JSON object (e.g. {“name”:“value”}

這條線給了我錯誤

無法反序列化當前的 JSON object (eg {"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; }
}

發生錯誤是因為您嘗試將 JSON object 反序列化為 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}]"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM