C# 属性序列化JSON

C# 属性序列化JSON,c#,.net,json,json.net,C#,.net,Json,Json.net,我正在尝试将字符串数组序列化为JSON,我正在使用Newtonsoft JSON.Net进行此操作,但是输出错误,我不知道如何正确地序列化它 我使用以下代码: string[] subscriptions = new string[] { "downloads" }; string[] exclusion = new string[] { "REFRESH_CONTENT" }; var toSend = new string[][] { subscriptions, exclusion };

我正在尝试将字符串数组序列化为JSON,我正在使用Newtonsoft JSON.Net进行此操作,但是输出错误,我不知道如何正确地序列化它

我使用以下代码:

string[] subscriptions = new string[] { "downloads" }; 
string[] exclusion = new string[] { "REFRESH_CONTENT" };
var toSend = new string[][] { subscriptions, exclusion };
string json = Newtonsoft.Json.JsonConvert.SerializeObject(toSend);
我得到了这个结果:

params: [[\"downloads\"],[\"REFRESH_CONTENT\"]]
params: [\"[\\\"downloads\\\"]\",\"[\\\"REFRESH_CONTENT\\\"]\"]
or without escaped strings (to be sure there is no error in the line above):
params: ["[\"downloads\"]","[\"REFRESH_CONTENT\"]"]
但我需要得到这个结果:

params: [[\"downloads\"],[\"REFRESH_CONTENT\"]]
params: [\"[\\\"downloads\\\"]\",\"[\\\"REFRESH_CONTENT\\\"]\"]
or without escaped strings (to be sure there is no error in the line above):
params: ["[\"downloads\"]","[\"REFRESH_CONTENT\"]"]

谢谢

你的期望是错误的。您的
toSend
是一个字符串数组数组。这就是序列化产生的结果。如果要获取字符串数组,必须创建一个:

var toSend = new string[] {JsonConvert.SerializeObject(subscriptions), JsonConvert.SerializeObject(exclusion)};
string json = JsonConvert.SerializeObject(toSend);

但是这样,您必须在接收方解析数组的每个元素。

您的期望是错误的。您的
toSend
是一个字符串数组数组。这就是序列化产生的结果。如果要获取字符串数组,必须创建一个:

var toSend = new string[] {JsonConvert.SerializeObject(subscriptions), JsonConvert.SerializeObject(exclusion)};
string json = JsonConvert.SerializeObject(toSend);
但这样,您必须在接收方解析数组的每个元素