gpt4 book ai didi

c# - 将动态变量转换为 List 或数组

转载 作者:行者123 更新时间:2023-12-04 03:35:20 26 4
gpt4 key购买 nike

我想用 Ajax 将这个数组发送到 api:

var receipt = Array();

receipt = [
{ 'Service': 'Saab', 'Order': '20' },
{ 'Service': 'Volvo', 'Order': '12' },
{ 'Service': 'BMW', 'Order': '25' }
];

这是我的 Ajax 主体:

var r = JSON.stringify(receipt);

$.ajax({
type: "POST",
dataType: "Json",
contentType: "application/json; charset=utf-8",
data: r,
url: "api/Receipt",
success: function (result) {
// To Do
console.info(result);
},
error: function (result) {
console.info(result);
}
});

这就是我作为 Json 得到的:

        {[
{
"Service": "Saab",
"Order": "20"
},
{
"Service": "Volvo",
"Order": "12"
},
{
"Service": "BMW",
"Order": "25"
}
]}

然后我像这样在 api 端捕获它们:

[Route("api/Receipt")]
[WebMethod]
public string Receipt_Turn(object obj)
{
dynamic dyn = JsonConvert.DeserializeObject(obj.ToString());

if (dyn != null)
{
return dyn[1].ToString();
}
else
{
return "false";
}

}

它起作用了,return dyn[1].ToString() 部分返回我的数组的第二条记录。但我想将此动态变量转换为模型的列表或数组。

这是我的模型:

[Serializable()]
public class Receipt
{
public string Service { get; set; }
public string Order { get; set; }
}

我想像这样处理它:

string serv = receipt[1].Service;

我该怎么做?

谢谢...

最佳答案

删除 JS 脚本中的数组部分并像这样编写:

var receipt = [
{ 'Service': 'Saab', 'Order': '20' },
{ 'Service': 'Volvo', 'Order': '12' },
{ 'Service': 'BMW', 'Order': '25' }
];

在这个形状中,您正在发送一个对象。在你的代码中,我猜你正在发送一个 JArray所以它会在从 JArray 转换时产生一些问题到另一个类型。

在您的 API 端,按如下方式编辑您的代码:

public string Receipt_Turn(object r)
{

//important Line Here
List<Receipt> rr = JsonConvert.DeserializeObject<List<Receipt>>(r.ToString());

if (rr != null)
{
return rr[1].ToString();
}
else
{
return "false";
}

}

如您所见,我们像获取对象一样获取它,然后我们将能够准备好您的 DeserializeObject就像我提到的那样。

你最声明你模型的列表,然后是 DeserializeObject 部分添加您要将其转换为的类型。

这里因为我们声明了List<Receipt> ,我们应该转换我们的 DeserializeObject为此,我们添加 <List<Receipt>>DeserializeObject 之后.

最后您可以随心所欲地使用它。

string serv = rr[1].Service;

关于c# - 将动态变量转换为 List<model> 或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67011223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com