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创建“}
如我所愿。这正是我之前所做的。不管怎样,谢谢你的回答。