我正在创建一个字符串变量,用于休息后调用,但它失败了。当我调试并查看json值时,我被告知它不是json格式。这肯定是关键:价值对,所以我不确定这里的问题是什么?
而不是双单引号我也试图逃避“通过使用\类似(这两种方法似乎都不好):
//string postData = "{\"title\":\"Change Title\", \"description\":\"Create description\", \"scheduledStartDate\": \"2018-12-24T11:24:48.91Z\", \"scheduledEndDate'': ''2018-12-25T11:24:48.91Z'' }";
string postData = @"{''changeNumberForClone'': ''C03688051'',
''scheduledStartDate'': ''2017-12-24T11:24:48.91Z'',
''scheduledEndDate'': ''2017-12-25T11:24:48.91Z''}";
答案 0 :(得分:4)
使用NewtonSoft Json.NET,您可以使用以下代码获取正确的json
字符串:
Dictionary<String, String> jsonDict = new Dictionary<String, String>();
jsonDict.Add("changeNumberForClone", "C03688051");
jsonDict.Add("scheduledStartDate", "2017-12-24T11:24:48.91Z");
jsonDict.Add("scheduledEndDate", "2017-12-25T11:24:48.91Z");
String postData = JsonConvert.SerializeObject(jsonDict);
如果您不想在项目中添加新库:
String postData = "{\"changeNumberForClone\":\"C03688051\", \"scheduledStartDate\":\"2017-12-24T11:24:48.91Z\", \"scheduledEndDate\": \"2017-12-25T11:24:48.91Z\"}";
为了使用相同的方法生成具有多个深度级别的json
字符串,您可以使用anonymous objects
,如下所示:
var obj = new { abc = new { def = new { one="1", two="2" } } };
var json = JsonConvert.SerializeObject(obj);
或者,如果您更喜欢使用Dictionary
个实例:
var obj = new Dictionary<String,Object>()
{
{
"abc", new Dictionary<String,Object>()
{
{
"def" , new Dictionary<String,Object>()
{
{ "one", "1" }, {"two", "2" }
}
}
}
}
};
两种方法的输出如下:
{
"abc": {
"def" : {
"one": "1",
"two": "2",
},
}
}