在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 请求类参数中的类
使用具有参数的参数在 Java 中创建 JSON RPC 请求
有没有什么好方法可以在Flutter中创建一个POST请求到JSON?