序列化JSON属性

时间:2016-05-06 09:54:48

标签: 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 };
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\"]"]

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

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