JSON 序列化添加额外字符为“\”
JSON Serialization adding extra character as "\"
我有一个从报告表达式中得到的字符串:
jql = @"(Project in (""CI"") and Status in (""Open"") and issueType in (""Action Item"")) or issueKey = ""GR L-1"" order by Created asc";
我将它转换为 JSON 并得到这样的结果:
jql = jql.Replace("\"", "'");
jql = "{" + "\"" + "jql" + "\"" + ": " + "\"" + jql + "\"" + "}";
低于JSON:
{"jql": "(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
当我像这样进行序列化时:
string data = JsonConvert.SerializeObject(request);
它给我这样的刺痛感:
{"jql":"{\"jql\": \"(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc\"}","startAt":0,"maxResults":0,"fields":[]}
这是一种错误的字符串。其实我想要这样的字符串:
{"jql": "(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
注意:我需要这样请求:
SearchRequest request = new SearchRequest();
request.JQL = jql;
string data = JsonConvert.SerializeObject(request);
string result = runQuery(JiraResource.search, data, "POST");
我这样试过:Escape characters after Serializing using Json
但是,这不起作用...
实际上我想要这样的字符串:
{"jql": "(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
我该怎么做?
此代码适用于您的案例:
string jql = @"(Project in (""CI"") and Status in (""Open"") and issueType in (""Action Item"")) or issueKey = ""GR L-1"" order by Created asc";
jql = jql.Replace("\"", "'");
string result = JsonConvert.SerializeObject(new { jql = jql } );
产生输出
{"jql":"(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
符合预期。
我有一个从报告表达式中得到的字符串:
jql = @"(Project in (""CI"") and Status in (""Open"") and issueType in (""Action Item"")) or issueKey = ""GR L-1"" order by Created asc";
我将它转换为 JSON 并得到这样的结果:
jql = jql.Replace("\"", "'");
jql = "{" + "\"" + "jql" + "\"" + ": " + "\"" + jql + "\"" + "}";
低于JSON:
{"jql": "(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
当我像这样进行序列化时:
string data = JsonConvert.SerializeObject(request);
它给我这样的刺痛感:
{"jql":"{\"jql\": \"(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc\"}","startAt":0,"maxResults":0,"fields":[]}
这是一种错误的字符串。其实我想要这样的字符串:
{"jql": "(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
注意:我需要这样请求:
SearchRequest request = new SearchRequest();
request.JQL = jql;
string data = JsonConvert.SerializeObject(request);
string result = runQuery(JiraResource.search, data, "POST");
我这样试过:Escape characters after Serializing using Json 但是,这不起作用...
实际上我想要这样的字符串:
{"jql": "(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
我该怎么做?
此代码适用于您的案例:
string jql = @"(Project in (""CI"") and Status in (""Open"") and issueType in (""Action Item"")) or issueKey = ""GR L-1"" order by Created asc";
jql = jql.Replace("\"", "'");
string result = JsonConvert.SerializeObject(new { jql = jql } );
产生输出
{"jql":"(Project in ('CI') and Status in ('Open') and issueType in ('Action Item')) or issueKey = 'GR L-1' order by Created asc"}
符合预期。