使用Newtonsoft.Json删除引号的转义

时间:2011-12-07 19:02:40

标签: iphone asp.net ios wcf json

我有一个WCF服务。网址为:http://iphone.clickcelltest.com/EduLink.svc/GetLevel

方法具有以下属性:

[WebGet(ResponseFormat=WebMessageFormat.Json)]

我从数据库中获取数据,然后在类的集合/列表中获取数据。 我使用Newtonsoft.Json DLL将集合转换为json字符串。它做得很好,但我需要将它发送到iPhone。

但是,我得到了不必要的报价转义。我理解它发生的原因。

但是,有没有办法避免它

那么,我该如何改变当前的结果:

"{\"Object\":[{\"LevelID\":4,\"LevelName\":\"Level A\"}]}"

{"Object":[{"LevelID":4,"LevelName":"Level A"}]}

如果需要更清晰,请告诉我。

非常感谢。

2 个答案:

答案 0 :(得分:3)

这看起来像returning a manually JSON-serialized string的结果,然后WCF再次序列化。而不是返回您使用Json.NET构建的字符串,而是使您的服务的返回值与您返回的数据类型相匹配,并直接返回该数据。

如果您出于某种原因特别需要使用Json.NET,那么使用HttpHandler而不是WCF将允许您在没有WCF干扰的情况下以较低级别进行响应。

答案 1 :(得分:0)

stringByReplacingOccurencesOfString

中使用NSString方法
NSString * jsonString = @"{\"Object\":[{\"LevelID\":4,\"LevelName\":\"Level A\"}]}";
NSString * filteredString = [jsonString stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSLog (@"%@",filteredString);