簡體   English   中英

C#字典<string, object> param jarray 取值查詢</string,>

[英]C# Dictionary<string, object> param jarray value extraction query

我正在制作 api 服務器

我正在嘗試從請求文本中的 jarray 數據中提取所需的 vlaue 值。

我的請求的全文是這樣的

{
  "Name": "",
  "Tel": "",
  "array": [
    {
      "GroupID": "0001",
      "CodeID": "01",
      "Value": "1"
    },
    {
      "GroupID": "0001",
      "CodeID": "02",
      "Value": "1"
    },
    {
      "GroupID": "0001",
      "CodeID": "03",
      "Value": "1"
    },
    {
      "GroupID": "0001",
      "CodeID": "04",
      "Value": "1"
    }
  ]
}

我只想將對象 [] 中的數組中的值放入請求的全文中

我只想使用 foreach 將我想要的數據放入 object[]

var arr = param.Values.Where(d => d.GetType() == typeof(object[])).Single() as Object[];
var codes = arr.OfType<Code>().Select(d => d.Value).ToArray();

internal class Code
{
    public string GroupId { get; set; }
    public string CodeId { get; set; }
    public string Value { get; set; }
}

我用這些代碼編寫了代碼,但我得到了錯誤

我認為的問題是請求全文中數組的值是

這似乎是一個錯誤,因為它是 Newtonsoft.Json.Linq.JArray。

我應該如何在我添加的代碼中進行轉換?

一個簡單的解決方案是在原始 DTO 中反序列化,然后轉換為所需的結構:

class Request
{
    public string Name { get; set; }
    public string Tel { get; set; }
    public Code[] array { get; set; }
}

class Code
{
    public string GroupId { get; set; }
    public string CodeId { get; set; }
    public string Value { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var request = JsonConvert.DeserializeObject<Request>(File.ReadAllText("request.json"));
        string[] values = request.array.Select(c => c.Value).ToArray();
    }
}

暫無
暫無

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

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