C# JSON序列化将额外字符添加为\&引用;

C# JSON序列化将额外字符添加为\&引用;,c#,json,string,wcf,json.net,C#,Json,String,Wcf,Json.net,我有一个这样的字符串,是从报表表达式中得到的: 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 = @"(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 + "\"" + "}";
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");
{"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"}
当我像这样进行序列化时:

 jql = jql.Replace("\"", "'");
 jql = "{" + "\"" + "jql" + "\"" + ": " + "\"" + jql + "\"" + "}";
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");
{"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("\"", "'");
 jql = "{" + "\"" + "jql" + "\"" + ": " + "\"" + jql + "\"" + "}";
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");
{"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("\"", "'");
 jql = "{" + "\"" + "jql" + "\"" + ": " + "\"" + jql + "\"" + "}";
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");
{"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("\"", "'");
 jql = "{" + "\"" + "jql" + "\"" + ": " + "\"" + jql + "\"" + "}";
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");
{"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("\"", "'");
 jql = "{" + "\"" + "jql" + "\"" + ": " + "\"" + jql + "\"" + "}";
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");
{"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”:(项目在('CI')中,状态在('Open')中,发行类型在('Action Item'))中)或发行基='GR L-1'顺序由asc创建“}


如我所愿。

这正是我之前所做的。不管怎样,谢谢你的回答。