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

Posted

技术标签:

【中文标题】在c#中创建一个json请求对象【英文标题】:Create a json request object in c# 【发布时间】:2015-10-14 17:45:01 【问题描述】:
   [
  "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);

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

【问题讨论】:

【参考方案1】:

结构应该是这样的:

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; 

【讨论】:

【参考方案2】:

您还需要声明根对象:

[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);

【讨论】:

【参考方案3】:

您可以使用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;
    

【讨论】:

【参考方案4】:

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

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

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

谢谢

【讨论】:

这会有什么帮助?

以上是关于在c#中创建一个json请求对象的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 对象映射到 Azure 函数 API 请求类参数中的类

如何在 C# 中创建一个简单的代理?

使用具有参数的参数在 Java 中创建 JSON RPC 请求

有没有什么好方法可以在Flutter中创建一个POST请求到JSON?

在 asp.net c# 中创建 iPhone 推送通知 Web 服务

在 Loopback 4 中创建一个模拟请求对象