【发布时间】:2015-06-09 01:55:05
【问题描述】:
我想创建多级 Json,使用 http://json2csharp.com/. 我创建了类。但不知道怎么用。
public class MassPay
{
public string legal_name { get; set; }
public string account_number { get; set; }
public string routing_number { get; set; }
public string amount { get; set; }
public string trans_type { get; set; }
public string account_class { get; set; }
public string account_type { get; set; }
public string status_url { get; set; }
public string supp_id { get; set; }
public string user_info { get; set; }
}
public class MassPayList
{
public string oauth_consumer_key { get; set; }
public string bank_id { get; set; }
public string facilitator_fee { get; set; }
public IList<MassPay> mass_pays { get; set; }
}
这些是我的课程,这是我想要创建的 Json 格式...
还有额外的元素...
{
"oauth_consumer_key":"some_oauth_token",
"mass_pays":[
{"legal_name":"SomePerson1",
"account_number":"888888888",
"routing_number":"222222222",
"amount":"10.33",
"trans_type":"0",
"account_class":"1",
"account_type":"2"
},
{"legal_name":"SomePerson2",
"account_number":"888888888",
"routing_number":"222222222",
"amount":"10.33",
"trans_type":"0",
"account_class":"1",
"account_type":"1"}
]
}
到目前为止,我已经想出了下面的代码..我使用的是 JObject,而所有其他的都是单级的,所以这很容易。但是到了两三级就很难了。
public JObject AddMassPayRequest(MassPayList lMassPayList, MassPay lMassPay)
{
JObject pin = new JObject(
new JProperty("legal_name", lMassPay.legal_name),
new JProperty("account_number", lMassPay.account_number),
new JProperty("routing_number", lMassPay.routing_number),
new JProperty("amount", lMassPay.amount),
new JProperty("trans_type", lMassPay.trans_type),
new JProperty("account_class", lMassPay.account_class),
new JProperty("account_type", lMassPay.account_type),
new JProperty("status_url", lMassPay.status_url),
new JProperty("supp_id", lMassPay.supp_id),
new JProperty("status_url", lMassPay.status_url),
new JProperty("user_info", lMassPay.user_info)
);
return pin;
}
public JObject AddMassPayRequestList(MassPayList lMassPayList, MassPay lMassPay)
{
JObject pin = new JObject(
new JProperty("mass_pays", lMassPayList.mass_pays),
new JProperty("bank_id", lMassPayList.bank_id),
new JProperty("facilitator_fee", lMassPayList.facilitator_fee),
new JProperty("oauth_consumer_key", lMassPayList.oauth_consumer_key)
);
return pin;
}
有人可以帮我怎么做吗..?
【问题讨论】:
-
MVC 已经为此提供了一个内置方法。在您的控制器中,初始化
MassPayList的新实例并设置其属性,然后设置return Json(yourInstance); -
@StephenMuecke 你能举个例子吗?如果没关系??
-
它只是
MassPayList model = new MassPayList(); model.oauth_consumer_key = "some_oauth_token";和其他属性(包括将新的MassPay添加到属性mass_pays)然后在控制器中 -return Json(model, JsonRequestBehavior.AllowGet);。Json()方法为您正确生成了 json 数据。注意如果它是一个POST方法,那么你可以省略Json()方法的第二个参数 -
@StephenMuecke 所以你想让我生成两个 JSON 并将它们组合起来???
-
我添加了批量支付的所有属性,我可以创建多个实例。我不确定有多少用户用户会通过.. 它不固定...所以如果用户通过了三个数组,那么我会一直计算它.. 我不确定如何做到这一点
标签: c# asp.net .net json asp.net-mvc