在 C# 中创建一个 json 请求对象

Create a json request object in c#

   [{
  "channel_id":299,
  "requests":[{
      "order_id":3975,
      "action":"REQUEST_LABELS"
  }]
}]

如何在c#中创建上述请求,请求可以是多个。

我是 c# 的新手,我尝试了以下方法:

  Dictionary<long, List<object>> requestObject = new Dictionary<long, List<object>>();
        List<object> listrequestObjects = new List<object>();

            Request requestOb = new Request();
            requestOb.order_id = 2372;
            requestOb.action = "REQUEST_LABELS";
            listrequestObjects.Add(requestOb);
            requestObject.Add(2352635, listrequestObjects);
            string requesttest = JsonConvert.SerializeObject(requestObject);

但是收到一个奇怪的请求。请帮忙。

结构应如下所示:

public class Request
{
    public int order_id { get; set; }
    public string action { get; set; }
}

public class RootObject
{
    public int channel_id { get; set; }
    public List<Request> requests { get; set; }
}

请尝试命名空间中可用的 JavaScriptSerializer class 使用 System.Web.Script.Serialization

JavaScriptSerializer js = new JavaScriptSerializer();
string result = js.Serialize(requestObject);

requestObject 列表是您自定义的 class,具有所有必要的属性。

谢谢

您还需要声明根对象:

[Serializable]
public class Root {
    public int channel_id;
    public Request[] requests;
}

然后赋值并序列化:

var root = new Root();
root.channel_id = 299;
root.requests = listrequestObjects.ToArray();
string requesttest = JsonConvert.SerializeObject(root);

您可以使用 Newtonsoft.Json.

试试这个

    private JArray GetResponse()
    {
        var main_array = new JArray();
        var channel_id = new JObject();
        channel_id.Add("channel_id",299);

        var request = new JArray();
        var order_id = new JObject();
        order_id.Add("order_id",3975);

        var action = new JObject();
        action.Add("action","REQUEST_LABELS");

        request.Add(order_id);
        request.Add(action);

        main_array.Add(channel_id);
        main_array.Add(request);

        return main_array;
    }