如何在C#中使用Jobject创建多级Json?

时间:2015-06-09 01:55:05

标签: c# asp.net .net json asp.net-mvc

我想创建多级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;
        }

有人可以帮我怎么做..?

2 个答案:

答案 0 :(得分:1)

如果你正在使用ASP.NET MVC,你只需要使用现有的类来使用Json响应操作。

您可以在控制器中执行以下操作:

return Json(new { PoId = newPoId, Success = true });

或实际的具体模型类:

var _AddMassPayRequestList = new AddMassPayRequestList();
  ...

返回AddMassPayRequestList类的填充实例:

return Json(_AddMassPayRequestList);

答案 1 :(得分:0)

所以最后我得到了这个答案,结构简单。使用这个你可以创建任何类型的Json ......它不必遵循相同的结构..

这背后的逻辑是在开始时添加你想要的东西,创建类以及你想要添加到json中的属性。因此,当passign只添加for循环并将Object传递给列表..它将循环并为您创建JSon ..

如果您有任何疑问,请告诉我很高兴为您提供帮助

{{1}}