![](/img/trans.png)
[英]Extract and compare only jarray value from Dictionary<string, object> param data
[英]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.