Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以在SignalR hub方法中返回预编码的JSON字符串?_C#_Json_Json.net_Signalr_Signalr Hub - Fatal编程技术网

C# 是否可以在SignalR hub方法中返回预编码的JSON字符串?

C# 是否可以在SignalR hub方法中返回预编码的JSON字符串?,c#,json,json.net,signalr,signalr-hub,C#,Json,Json.net,Signalr,Signalr Hub,在MVC项目中,我在hub上有一个类似于以下内容的方法: public string Foo() { return DoCrazyThingThatReturnsJson(); } 不幸的是,SignalR(或其他什么)接受编码的JSON字符串并愉快地编码它,然后返回它,所以浏览器可能像LOLWTF一样。有没有办法跳过第二次编码?查看: 我们假设任何ArraySegment都已被JSON序列化 它(注意,我还没有尝试过,所以没有承诺): string jsonString = ...; //

在MVC项目中,我在hub上有一个类似于以下内容的方法:

public string Foo() { return DoCrazyThingThatReturnsJson(); }
不幸的是,SignalR(或其他什么)接受编码的JSON字符串并愉快地编码它,然后返回它,所以浏览器可能像LOLWTF一样。有没有办法跳过第二次编码?

查看:

我们假设任何ArraySegment都已被JSON序列化

它(注意,我还没有尝试过,所以没有承诺):

string jsonString = ...; // your serialized data
var jsonBytes = new ArraySegment<byte>(Encoding.UTF8.GetBytes(jsonString));
Clients.Caller.sendJson(jsonBytes);
var serializer = new JsonSerializer();
serializer.Converters.Add(new PreserializedConverter());

GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);