[OperationContract] [WebGet(UriTemplate = "Hello")] Stream Get(string name);
public Stream Hello(string name) { string jsCode = "Hello"; return new MemoryStream(Encoding.UTF8.GetBytes(jsCode)); }
找到解决办法啦,WebMessageFormat.Json就是会在返回值上加双引号
上面是我的解决办法,希望能帮到一些人
其实一般情况下不会遇到我的问题,但是做服务封装的时候估计会遇到~
不错,谢谢。
http://www.json.org/json-zh.html
json 中字符串必须用双引号括起来。
然后你通过调试器查看值的时候,字符串中的特殊字符会被转义后显示出来。你可以通过将其写入控制台或文件来看到真正的值。
真正的值是"Hello" 而我想要的是 Hello
@Sanco: 在传输中的值是 "Hello",而在JSON中真正的值是 Hello,双引号""表示这是一个字符串类型,而不是别的其它数据类型。
你的响应中 Content-Type 为 application/json,那么按照 json 文法来解析的时候,如果你只返回一个 Hello ,而不是返回 "Hello",解析器在解析的时候会报语法错误。这就是典型的接口定义二义性。国内很多厂商都这么做,给第三方开发带来很大的麻烦。
监视窗口的值表示这是一个string值,你可以客户端调用直接输出看看是不是没有引号
真正的值是"Hello" 而我想要的是 Hello
这个json的格式,对你有影响吗。
有哇,这个不解决以后每次客户端都是需要做处理啊
用js直接replace如:data= data.replace("\","")《考虑用正则表达式替换多个》; 然后data=eval(data);即可